<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/">

<channel>
	<title>johannes.jarolim.com &#187; CSS</title>
	<atom:link href="http://johannes.jarolim.com/blog/tag/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://johannes.jarolim.com/blog</link>
	<description>Willkommen auf der privaten Homepage von Johannes Jarolim, Salzburg, Österreich / Welcome to the private homepage of Johannes Jarolim, Salzburg, Austria, Europe.</description>
	<lastBuildDate>Mon, 06 Feb 2012 14:14:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<atom:link rel="next" href="http://johannes.jarolim.com/blog/tag/css/feed/?page=2" />

		<item>
		<title>@font-face und Mobilbrowser</title>
		<link>http://johannes.jarolim.com/blog/2012/01/22/font-face-und-mobilbrowser/</link>
		<comments>http://johannes.jarolim.com/blog/2012/01/22/font-face-und-mobilbrowser/#comments</comments>
		<pubDate>Sun, 22 Jan 2012 15:45:03 +0000</pubDate>
		<dc:creator>Johannes</dc:creator>
				<category><![CDATA[Know-How]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[font-face]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[galaxy tab]]></category>
		<category><![CDATA[tablet]]></category>

		<guid isPermaLink="false">http://johannes.jarolim.com/blog/?p=1230</guid>
		<description><![CDATA[Ein kleiner Tip: Manche Mobilbrowser (Beispiel: Der Standard- Systembrowser auf dem Samsung Galaxy Tab 10.1) haben Probleme mit relativ (zur Position des Stylesheet) verlinkten Font-Dateien. Die Browser sind anscheinend nicht in der Lage, die Font-Dateien zu finden und weichen bei der Darstellung auf den definierten Fallback bzw. Systemfonts aus, was in manchen Layouts nicht so [...]]]></description>
			<content:encoded><![CDATA[<p>Ein kleiner Tip: Manche Mobilbrowser (Beispiel: Der Standard- Systembrowser auf dem Samsung Galaxy Tab 10.1) haben Probleme mit relativ (zur Position des Stylesheet) verlinkten Font-Dateien.</p>
<p>Die Browser sind anscheinend nicht in der Lage, die Font-Dateien zu finden und weichen bei der Darstellung auf den definierten Fallback bzw. Systemfonts aus, was in manchen Layouts nicht so nett ausschauen dürfte ;-)</p>
<p><strong>Beispiel:</strong> Die Verzeichnisstruktur einer kleinen Seite schaut folgendermaßen aus:</p>
<pre>/
/index.html
/css/style.css
/css/fonts/coolfont.eot
/css/fonts/coolfont.woff
/css/fonts/coolfont.ttf
/css/fonts/coolfont.svg</pre>
<p>Wir binden die Schriftart in der style.css mit CSS-Konformen Pfaden ein (relativ zum CSS-File), Überschriften der Kategorie 1 sollen in Coolfont dargestellt werden &#8211; Als Fallback-Schriftfamilien haben wir arial und sans-serif definiert.</p>
<pre>@font-face {
  font-family: 'CoolFont';
  src: url('fonts/coolfont.eot?#iefix') format('eot'),
       url('fonts/coolfont.woff') format('woff'),
       url('fonts/coolfont.ttf')  format('truetype'),
       url('fonts/coolfont.svg#CoolFont') format('svg');
}

h1 { font-family: CoolFont, arial, sans-serif; }</pre>
<p><strong>Ergebnis:</strong> Desktopbrowser stellen die Schriftart korrekt an &#8211; der Browser auf meinem Galaxy Tab stellt die Überschriften in arial an.</p>
<p>Gibt man stattdessen absolute Pfade vom DocumentRoot der Seite aus gesehen an, funktioniert es:</p>
<pre>@font-face {
  font-family: 'CoolFont';
  src: url('/css/fonts/coolfont.eot?#iefix') format('eot'),
       url('/css/fonts/coolfont.woff') format('woff'),
       url('/css/fonts/coolfont.ttf')  format('truetype'),
       url('/css/fonts/coolfont.svg#CoolFont') format('svg');
}</pre>
<p>Hope this helps: enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://johannes.jarolim.com/blog/2012/01/22/font-face-und-mobilbrowser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fine grained CSS Conditional Comments für Internet Explorer</title>
		<link>http://johannes.jarolim.com/blog/2009/10/22/fine-grained-css-conditional-comments-fur-internet-explorer/</link>
		<comments>http://johannes.jarolim.com/blog/2009/10/22/fine-grained-css-conditional-comments-fur-internet-explorer/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 09:45:57 +0000</pubDate>
		<dc:creator>Johannes</dc:creator>
				<category><![CDATA[Know-How]]></category>
		<category><![CDATA[Conditional Comments]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://johannes.jarolim.com/blog/?p=701</guid>
		<description><![CDATA[In Ergänzung zu meinem letzten Artikels bzgl. IE Conditional Comments und deren listiger Nutzung finde ich folgende Verfeinerung sehr sinnvoll: Manchmal benötige ich zusätzlich zur Identifizierung des Internet Explorers noch die Version, um den Stylesheet noch feiner kontrollieren zu können. Das lößt man am besten folgendermaßen: Im CSS selber kann man sich dann entscheiden, ob [...]]]></description>
			<content:encoded><![CDATA[<p>In Ergänzung <a href="http://johannes.jarolim.com/blog/2008/12/12/ie-conditional-comments-weitere-listige-nutzung">zu meinem letzten Artikels bzgl. IE Conditional Comments und deren listiger Nutzung</a> finde ich folgende Verfeinerung sehr sinnvoll:</p>
<p>Manchmal benötige ich zusätzlich zur Identifizierung des Internet Explorers noch die Version, um den Stylesheet noch feiner kontrollieren zu können. Das lößt man am besten folgendermaßen:</p>
<p><span id="more-701"></span></p>
<pre class="brush: php; title: ; notranslate">
&lt;body&gt;
  &lt;!--[if IE 6]&gt;&lt;div id=&quot;IE&quot; class=&quot;IE6&quot;&gt;&lt;![endif]--&gt;
  &lt;!--[if IE 7]&gt;&lt;div id=&quot;IE&quot; class=&quot;IE7&quot;&gt;&lt;![endif]--&gt;
  &lt;!--[if IE 8]&gt;&lt;div id=&quot;IE&quot; class=&quot;IE8&quot;&gt;&lt;![endif]--&gt;
    ... Der Inhalt ...
  &lt;!--[if IE]&gt;&lt;/div&gt;&lt;![endif]--&gt;
&lt;/body&gt;
</pre>
<p>Im CSS selber kann man sich dann entscheiden, ob man den Internet Explorer generell behandelt, nur eine bestimmte Version oder beides:</p>
<pre class="brush: php; title: ; notranslate">

/* Standard Definition für &quot;brave&quot; Webkit-Browser */
.definition {
  margin:10px;
}

/* Wir schreiben die Definition für alle IE-Versionen um */
#IE .definition {
  margin:15px;
}

/* Schlußendlich gehen wir ins Detail */
#IE.IE6 .definition {
  margin:20px;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://johannes.jarolim.com/blog/2009/10/22/fine-grained-css-conditional-comments-fur-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE Conditional Comments: Weitere listige Nutzung</title>
		<link>http://johannes.jarolim.com/blog/2008/12/12/ie-conditional-comments-weitere-listige-nutzung/</link>
		<comments>http://johannes.jarolim.com/blog/2008/12/12/ie-conditional-comments-weitere-listige-nutzung/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 09:45:29 +0000</pubDate>
		<dc:creator>Johannes</dc:creator>
				<category><![CDATA[Know-How]]></category>
		<category><![CDATA[Conditional Comments]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Know How]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://johannes.jarolim.com/blog/?p=526</guid>
		<description><![CDATA[Auf bueltge.de hat Frank schön zusammengefasst, wie man conditional comments nutzen kann, um zusätzliche Stylesheets einzubinden, die nur der IE interpretiert. Zusätzlich zeigt er noch Wege mittels PHP und JavaScript auf, um solch eine Browserweiche umzusetzen. Mich interessierte nun aber nur der Part mit den Conditional Comments, da es meiner Meinung nach eine weitere sehr [...]]]></description>
			<content:encoded><![CDATA[<p>Auf <a href="http://bueltge.de/conditional-comments-effizient-nutzen/632/" target="_blank">bueltge.de</a> hat Frank schön zusammengefasst, wie man conditional comments nutzen kann, um zusätzliche Stylesheets einzubinden, die nur der IE interpretiert. Zusätzlich zeigt er noch Wege mittels PHP und JavaScript auf, um solch eine Browserweiche umzusetzen.</p>
<p>Mich interessierte nun aber nur der Part mit den Conditional Comments, da es meiner Meinung nach eine weitere sehr listige Verwendungsweise dafür gibt.</p>
<p><span id="more-526"></span></p>
<h2>Die Standardverwendung</h2>
<p>Dazu nochmal die fast überall notierte Verwendungsweise:</p>
<ol>
<li>Man gestalte eine Internetseite, setze sie in HTML und CSS um, sodaß sie in Standardbrowsern funktioniert.</li>
<li>Jetzt schaue man sich die Seite im Microsoft Browser an &#8211; Sie wird normalerweise nicht korrekt dargestellt.</li>
<li>Man entwickelt CSS Ergänzungen in einem eigenen CSS File, die Fehler in der CSS Interpretation des IE ausbügeln/umgehen.</li>
<li>Man bindet dieses zusätzliche CSS via Conditional Comment beispielsweise so  in das HTML-Dokument ein:</li>
</ol>
<pre class="brush: php; title: ; notranslate">&lt;!--[if IE]&gt;
	&lt;link rel=&quot;stylesheet&quot; href=&quot;ie_repair.css&quot; mce_href=&quot;ie_repair.css&quot; /&gt;&lt;![endif]--&gt;</pre>
<h2>Soweit so gut.</h2>
<p>Ich persönliche benutze Conditional Comments sehr gerne: Die einzige Alternative dazu sind Inline Hacks (wie zB. der Underscore Hack), die das CSS meiner Meinung nach unlesbar machen. Zusätzlich habe ich bei solchen &#8220;undokumentierten&#8221; Hacks immer ein mulmiges Gefühl in der Bauchgegend: Funktionieren diese auch im nächsten IE Browser?</p>
<h2>Nachteil der Standardverwendung</h2>
<p>Abgesehen davon, dass Conditional Comments dem Designer ein mächtiges Werkzeug in die Hand geben, um Layouts sauber auch im IE zum laufen zu bekommen, hat die Standardverwendung (konditionale Stylesheeteinbindung) auch einen Nachteil:</p>
<p><strong>Die Trennung von CSS Angaben für das selbe Element in mehrere Files.</strong></p>
<p>Möchte man ein Element ändern, muß man die Änderung zuerst im Defaultstyle durchführen. Danach muß man noch prüfen, ob die Änderung auch im IE erscheint und dann dementsprechend im IE-Conditional-Comment-Style schauen, ob das Element dort überschrieben wurde oder nun überschrieben werden muß. Zwei Files, zweimal suchen.</p>
<p>Das kann meiner Erfahrung nach besonders bei komplexen Stylesheets einiges an Zeit konsumieren.</p>
<h2>Der Weg des listigen Designers</h2>
<p>Nun kann man Conditional Comments ja eigentlich grundsätzlich dazu nutzen, um HTML Code einzubinden, der dann nur im IE angezeigt wird &#8211; Man ist ja nicht auf Stylesheet-Einbindungen beschränkt.</p>
<p>Der meiner Meinung nach sehr listige Weg ist nun, dass man ein zusätzliches IE-Wrap-Element um den gesamten Content legt:</p>
<pre class="brush: php; title: ; notranslate">

  &lt;!--[if IE]&gt;--&gt;
&lt;div id=&quot;IE&quot;&gt;&lt;!--[endif]--&gt;
&lt;div id=&quot;content&quot;&gt;
      ...&lt;/div&gt;
  &lt;!--[if IE]&gt;--&gt;&lt;/div&gt;
&lt;!--[endif]--&gt;
</pre>
<p>Dies erlaubt nun die saubere und gut lesbare Überschreibung von CSS nur für IE &#8211; Im gleichen CSS am selben Ort:</p>
<pre class="brush: php; title: ; notranslate">...
#content { background-color:red; }
#IE #content { background-color:#ff0000; }
...</pre>
<p>Man sieht den Trick und freut sich: <strong> </strong>Sauberes und super lesbares CSS für zwei Browser in einem zentralen File ;-)</p>
<p><strong>Mein Fazit:</strong> Conditional Comments geben dem Designer ein mächtiges Werkzeug in die Hand, um Layouts mittels eines &#8220;Standardwegs&#8221; auch im IE zum Laufen zu bekommen. Die an den meisten Orten dokumentierte Standardnutzung bringt meiner Meinung nach unnütze Komplexität in CSS-Definitionen, da Elemente teilweise getrennt in mehreren Files definiert werden müssen. Ein zusätzlicher HTML Request verlangsamt die Seitendarstellung.</p>
<p>Die Benutzung von Conditional Wrapper Elementen erlaubt eine gut lesbare und standardkonforme Definition von IE-Styles am richtigen Ort.</p>
]]></content:encoded>
			<wfw:commentRss>http://johannes.jarolim.com/blog/2008/12/12/ie-conditional-comments-weitere-listige-nutzung/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

