<?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/"
	>

<channel>
	<title>Kau-Boys blog &#187; CSS</title>
	<atom:link href="http://kau-boys.de/tag/css/feed" rel="self" type="application/rss+xml" />
	<link>http://kau-boys.de</link>
	<description>Webdevelopment and more</description>
	<lastBuildDate>Thu, 29 Jul 2010 22:09:53 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Blog oder Website fit machen f&#252;r den IE6</title>
		<link>http://kau-boys.de/webentwicklung/blog-oder-website-fit-machen-fuer-den-ie6?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=blog-oder-website-fit-machen-fuer-den-ie6</link>
		<comments>http://kau-boys.de/webentwicklung/blog-oder-website-fit-machen-fuer-den-ie6#comments</comments>
		<pubDate>Sat, 30 Jan 2010 16:22:32 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webentwicklung]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=662</guid>
		<description><![CDATA[Wie auf vielen News-Seiten zu lesen ist stellt Google ab Mitte des Jahres offiziell den Support f&#252;r den Internet Explorer in der Version 6.0 ein. Unter den Besuchern meines Blog befindet sich zwar nur ein verschwindend geringer Prozentsatz an IE6 Nutzern, aber auch diese sollten meine Website einigerma&#223;en ansehnlich pr&#228;sentiert bekommen. Das gr&#246;&#223;te Problem ist [...]]]></description>
			<content:encoded><![CDATA[<p>Wie auf vielen News-Seiten zu lesen ist stellt Google ab Mitte des Jahres offiziell den Support f&#252;r den Internet Explorer in der Version 6.0 ein. Unter den Besuchern meines Blog befindet sich zwar nur ein verschwindend geringer Prozentsatz an IE6 Nutzern, aber auch diese sollten meine Website einigerma&#223;en ansehnlich pr&#228;sentiert bekommen.</p>
<p>Das gr&#246;&#223;te Problem ist oft, dass die sch&#246;nen Themes nicht auf den IE6 angepasst wurden und daher zu sehr unsch&#246;nen Darstellungen f&#252;hren. Ich habe in einer virtuellen Maschine noch eine Installation vom Internet Explorer 6 laufen und damit mal selbst meinen Blog getestet. Das Ergebnis sah leider wie folgt aus:</p>
<p><a href="http://kau-boys.de/wp-content/uploads/2010/01/vorher.png" class="thickbox" title="Blog vor der Installation des Plugins"><img src="http://kau-boys.de/wp-content/uploads/2010/01/vorher_small.png" alt="Blog vor der Installation des Plugins" title="Blog vor der Installation des Plugins" /></a></p>
<p><span id="more-662"></span></p>
<p>Wie ihr hier sehen k&#246;nnt sind die transparenten PNG Bilder im IE6 nicht transparent, da dieser nur transparente GIF Bilder unterst&#252;tzt. Viel schlimmer war aber, dass die Sidebar mit den Widgets komplett nach unten gerutscht war. Um das zu beheben h&#228;tte ich sehr viele Dinge im CSS Layout und vermutlich auch im HTML-Quellcode &#228;ndern m&#252;ssen. Daher habe ich &#252;berlegt, was man stattdessen tun k&#246;nnte.</p>
<h2>Die L&#246;sung: Google Chrome Frame</h2>
<p>Schon vor l&#228;ngerer Zeit hatte ich etwas vom <a href="http://code.google.com/intl/de-DE/chrome/chromeframe/">Google Chrome Frame</a> gelesen, der die Webkit Rendering Engine und die JavaScript Engine des Chrome Browsers in den Internet Explorer bringt. Dazu muss der Benutzer lediglich ein Plugin f&#252;r den Internet Explorer installieren und der Website-Betreiber muss dem Plugin mitteilen, dass der Inhalt automatisch damit gerendert werden soll.</p>
<h2>Den Browser zum Rendern mit dem Chrome Frame veranlassen</h2>
<p>Alles was der Website-Betreiber tun muss, ist folgenden Meta-Tag in seinen Quellcode einzuf&#252;gen:</p>
<pre class="brush: xml; gutter: false;">
&lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;chrome=1&quot; /&gt;
</pre>
<p>Das <code>X-UA-Compatible</code> Meta-Tag sorgt daf&#252;r, dass das Plugin aktiviert wird und der Benutzer den Inhalt richtig dargestellt bekommt, vorausgesetzt nat&#252;rlich er hat es auch installiert. Um einen Benutzer des Internet Explorers dazu zu bewegen das Plugin zu installieren, hat Google ein kleines JavaScript-Snippet bereitgestellt, mit dem der Benutzer einen Link zur Download-Seite des Plugins bekommt:</p>
<pre class="brush: xml;">
&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js&quot;&gt;&lt;/script&gt;
&lt;div id=&quot;placeholder&quot;&gt;&lt;/div&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
	CFInstall.check({
		node: &quot;placeholder&quot;,
		destination: &quot;http://www.waikiki.com&quot;
	});
&lt;/script&gt;
</pre>
<p>Damit die Aufforderung zum Download auch nur Benutzern des IE6 angezeigt wird, habe ich zus&#228;tzlich ein <a href="http://de.selfhtml.org/css/layouts/browserweichen.htm#alternative">Conditional Comment</a> benutzt, um das Snippet nur auf IE6 Benutzer anzuwenden, damit Benutzer des Internet Explorer 7 und h&#246;her keine Aufforderung bekommen. Au&#223;erdem m&#252;ssen damit auch alle Nutzer eines andern Browsers nicht die JavaScript-Datei vom Google Server laden.</p>
<h2>Der Blog nach der Installation des Plugins</h2>
<p>F&#252;r diejenigen von euch, die etwas skeptisch sind, ob der ganze Aufwand lohnt, habe ich hier nun das &#8220;nachher&#8221; Bild, damit ihr sehen k&#246;nnt, dass es wirklich funktioniert:</p>
<p><a href="http://kau-boys.de/wp-content/uploads/2010/01/nachher.png" class="thickbox" title="Blog nach der Installation des Plugins"><img src="http://kau-boys.de/wp-content/uploads/2010/01/nachher_small.png" alt="Blog nach der Installation des Plugins" title="Blog nach der Installation des Plugins" /></a></p>
<p>Wie ihr sehen k&#246;nnt, sieht der Blog nun wieder richtig aus. Als kleinen Bonus des Plugins k&#246;nnt ihr auch den Inspektor nutzen, wie man ihn von Chrome oder Safari gew&#246;hnt ist. Aber die Besucher eures Blog werden das wohl eher nicht nutzen.</p>
<p>Ich hoffe, dass euch dieser Tipp helfen konnte. Mich w&#252;rde interessieren, was ihr vom Google Chrome Frame haltet oder was f&#252;r euch dagegen spricht. Hat ihn vielleicht jemand auch im Einsatz und schon echte Probleme oder Nachteile damit feststellen k&#246;nnen? &#220;ber Kommentare w&#252;rde ich mich wie immer sehr freuen &#8230; &#252;ber ein baldiges Aussterben des IE6 aber noch viel mehr <img src='http://kau-boys.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/webentwicklung/blog-oder-website-fit-machen-fuer-den-ie6/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Externe Links kennzeichnen mit CSS3</title>
		<link>http://kau-boys.de/webentwicklung/externe-links-kennzeichnen-mit-css3?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=externe-links-kennzeichnen-mit-css3</link>
		<comments>http://kau-boys.de/webentwicklung/externe-links-kennzeichnen-mit-css3#comments</comments>
		<pubDate>Tue, 08 Sep 2009 20:24:38 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webentwicklung]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=253</guid>
		<description><![CDATA[Wer kennt nicht das Problem mit externen Links? Man m&#246;chte dem Benutzer kein target=&#8221;_blank&#8221; zumuten und l&#228;sst daher auch externe Links im gleichen Fenster &#246;ffnen. Damit der Benutzer aber sehen kann, dass es sich um einen externen Link handelt, m&#246;chte man die Links gerne markieren. Daruch kann der Benutzer ihn eventuell selbstst&#228;ndig in einem neuen [...]]]></description>
			<content:encoded><![CDATA[<p>Wer kennt nicht das Problem mit externen Links? Man m&#246;chte dem Benutzer kein target=&#8221;_blank&#8221; zumuten und l&#228;sst daher auch externe Links im gleichen Fenster &#246;ffnen. Damit der Benutzer aber sehen kann, dass es sich um einen externen Link handelt, m&#246;chte man die Links gerne markieren. Daruch kann der Benutzer ihn eventuell selbstst&#228;ndig in einem neuen Fenster/Tab &#246;ffnen.</p>
<p>Bisher habe ich schon viele L&#246;sungen f&#252;r dieses Problem gefunden. Einige davon wurden serverseitig vorgenommen, einige sehr aufw&#228;ndig per JavaScript clientseitig. Meistens wurden dabei alle Links innerhalb einer Seite gesucht und dann per Script angepasst.</p>
<p><span id="more-253"></span></p>
<p>Durch die tollen neuen M&#246;glichkeiten von CSS3 gibt es aber eine sehr elegante Variante, die keinerlei Umbauarbeiten an den Scripten erfordert. Es reicht ein simpler CSS Selektor, der alle externen Links erkennt und anschlie&#223;end entsprechend kennzeichnet.</p>
<pre class="brush: css; gutter: false;">
a[href^='http']:not([href^='http://example.com']):not([href^='https://example.com']){ /* Styles f&#252;r externe Links */ }
</pre>
<p>Der Anfang sollte bekannt sein. Wir selektieren zuerst alle Links mit einem &#8220;href&#8221; Attribut, das mit &#8220;http&#8221; beginnt. Damit schlie&#223;en wir alle Anker, reine Ankerlinks, relative Links sowie &#8220;mailto&#8221;-Links aus. Mit der not() Funktion von CSS3 selektieren wir anschlie&#223;end alle Links, die NICHT die Domain als absoluten Link mit &#8220;http&#8221; oder &#8220;https&#8221; enthalten. Dabei ist nat&#252;rlich &#8220;example.com&#8221; durch die zu suchende Domain zu ersetzen. Sollen auch Subdomains nicht selektriert werden, k&#246;nnen diese ebenfalls in einer weitern not() Funktion angegeben werden. Vereinfacht k&#246;nnte man auch alle Links ausw&#228;hlen, die den Domainnamen und die Toplevel-Domain nicht enthalten:</p>
<pre class="brush: css; gutter: false;">
a[href^='http']:not([href*='example.com']){ /* Styles f&#252;r externe Links */ }
</pre>
<p>Hierbei w&#252;rden aber auch externe Links ausgelassen, die den eigenen Domainnamen im Linktext enthalten wie z.B. bei &#8220;http://www.einblog.de/toller_artikel_auf_example.com&#8221;.</p>
<p>Nachdem nun alle externen Links selektiert wurden, k&#246;nnen sie mit ein paar netten Styles versehen werden. Ich habe hier mal exemplarisch mit dem Pseudoelement &#8220;:after&#8221; einen Text nach dem Link eingef&#252;gt, diesen rot markiert und zus&#228;tzlich ein Icon als Hintergrund eingef&#252;gt. Der Phantasie sind hier aber keine Grenzen gesetzt. </p>
<pre class="brush: css; gutter: false;">
a[href^='http']:not([href^='http://example.com']):not([href^='https://example.com']):after {
	content: ' (external)';
	color: red;
	background: transparent url('external_link.png') center right no-repeat;
	padding-right: 16px;
}
</pre>
<p>Wie das ganze f&#252;r die verschiedenen Linkarten aussieht k&#246;nnt Ihr euch auf der kleinen Beispielseite ansehen. Ihr ben&#246;tigt daf&#252;r aber einen teilweise CSS3 kompatiblen Browser. Ich habe es erfolgreich mit Firefox 3.5, Safari 4.0, Chrome 2.0 und Opera 10.0 getestet. Der Internet Explorer unterst&#252;tzt die not() Funktion auch in Version 8.0 noch nicht.</p>
<p><a href="http://kau-boys.de/beispiele/external/">Beispiel</a></p>
<p>Wenn Ihr Anregungen zu der L&#246;sung habt oder eine andere tolle L&#246;sung kennt w&#252;rde Sie mich sehr interessieren.</p>
]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/webentwicklung/externe-links-kennzeichnen-mit-css3/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
