<?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>Fabian Letscher - Blog + Portfolio &#187; Hack</title>
	<atom:link href="http://fabianletscher.de/tag/hack/feed" rel="self" type="application/rss+xml" />
	<link>http://fabianletscher.de</link>
	<description>WordPress, Webdesign, HTML5, CSS</description>
	<lastBuildDate>Sun, 12 Feb 2012 10:52:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>HTML 5 Darstellung im IE</title>
		<link>http://fabianletscher.de/css/html-5-darstellung-im-ie.html</link>
		<comments>http://fabianletscher.de/css/html-5-darstellung-im-ie.html#comments</comments>
		<pubDate>Tue, 28 Jul 2009 13:41:41 +0000</pubDate>
		<dc:creator>Fabian</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Lösung]]></category>

		<guid isPermaLink="false">http://fabianletscher.de/?p=355</guid>
		<description><![CDATA[Dies ist nun ein weiterer Artikel rund um HTML5. Es geht hierbei um zwei Wege wie man eine erfolgreiche Darstellung von HTML 5 im IE bekommt. Teil: Das HTML 5 Markup Teil: Erstellung des Stylesheets Teil: HTML 5 Darstellung im IE Das IE Problem: Darstellung unbekannter Elemente Wie man bei Peter Kröner nachlesen kann, legen [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Dies ist nun ein weiterer Artikel rund um HTML5. Es geht hierbei um zwei Wege wie man eine erfolgreiche Darstellung von HTML 5 im IE bekommt.</strong></p>
<ol>
<li>Teil: <a  title="Das HTML 5 Markup" href="http://fabianletscher.de/html/das-html-5-markup.html">Das HTML 5 Markup</a></li>
<li>Teil: <a  title="Erstellung des Stylesheets" href="http://fabianletscher.de/css/das-css-des-templates.html">Erstellung des Stylesheets</a></li>
<li>Teil: HTML 5 Darstellung im IE</li>
</ol>
<h3>Das IE Problem: Darstellung unbekannter Elemente</h3>
<p>Wie man bei <a  class="extern" title="HTML5 – Was geht heute schon, was geht nicht? Der große Überblick." href="http://www.peterkroener.de/html5-was-geht-heute-schon-was-geht-nicht-der-grosse-ueberblick/">Peter Kröner</a> nachlesen kann, legen die Internet Explorer 6-8 unbekannte Elemente falsch aus. Aus</p>
<pre>&lt;aside&gt;
&lt;h3&gt;Sidebar&lt;/h3&gt;
&lt;p&gt;Paragraph...&lt;/p&gt;
&lt;/aside&gt;</pre>
<p> wird mit dem IE:</p>
<pre>&lt;aside&gt;&lt;/aside&gt;
&lt;h3&gt;Sidebar&lt;/h3&gt;
&lt;p&gt;Paragraph...&lt;/p&gt;
&lt;/aside&gt;&lt;//aside&gt;</pre>
<p>Das schwerwiegende Problem, was sich dadurch ergibt ist, dass Inhalte nicht mehr von den Tags umrandet werden und so schlecht zu formatieren sind.</p>
<h3>Javascript Lösung</h3>
<p>Die wohl einfachste Möglichkeit diese Problem zu beheben ist es, diese Elemente für den IE neu zu erzeugen. Das geht indem man folgenden Code einbaut:</p>
<pre>&lt;!--[if IE]&gt;
&lt;script src=&quot;http://html5shiv.googlecode.com/svn/trunk/html5.js&quot;&gt;&lt;/script&gt;
&lt;![endif]--&gt;</pre>
<p>Dieser sollte in den <code>head</code> Bereich, da der IE, bevor er die neuen Elemente zu Gesicht bekommt, wissen muss was zu tun ist.<br />
Die html5.js- Datei lagert auf <a  title="Google Code" class="extern" href="http://code.google.com/">Google Code</a>. Wem das nicht zusagt, kann sie natürlich selbst hosten. Mehr Infos zur Datei gibt es <a  href="http://remysharp.com/2009/01/07/html5-enabling-script/" title="HTML5 enabling script" class="extern">hier</a>.</p>
<p>Ein Problem wäre bei diesem Ansatz die Deaktivierung von Javascript. Dadurch wird das ganze natürlich recht unnötig. Daher hier noch eine Ausweg-Möglichkeit.</p>
<h3>CSS &amp; Conditional Comments Lösung</h3>
<p>Diese Möglichkeit erlaubt es speziell für den IE ausgerichtet ein Stylesheet zu erstellen. Der Nachteil ist der Mehraufwand, welcher dadurch entsteht. Jedoch kann man auch sagen, dass diese Version die Javascript-Lösung komplett ersetzt. In meinem Template kommen trotzdem beide Varianten zum Einsatz, da ich sie natürlich auch ausprobieren wollte!<br />
Zuerst sollte man ein neues Stylesheet für den Internet Explorer anlegen und dieses in die Webseite einbinden. Wenn man eine Kombination aus der obigen Javascript-Version und dieser verwenden möchte, sollte man diese Zeile in die IE-Bedingung einfügen:</p>
<pre>&lt;noscript&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;ie.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;&lt;/noscript&gt;</pre>
<p>Nun greift der IE nur auf das Stylesheet zurück, wenn Javascript deaktiviert ist.</p>
<p>Um die ganzen Elemente wie <code>header</code>, <code>section</code>, <code>aside</code> und <code>article</code> anzusprechen, braucht man zusätzliche &#8220;Formatierungs-Elemente&#8221;. Diese fügt man entweder direkt ein.<br />
<samp>Beispiel: Direkt eingefügte Zusatz-Elemente</samp></p>
<pre>&lt;div id=&quot;header&quot;&gt;
&lt;header&gt;
...
&lt;/header&gt;
&lt;/div&gt;</pre>
<p>Auch möglich ist es das ganze noch in Conditional Comments zu packen. Dadurch lässt sich leichter unterscheiden, was zum IE gehört und was nicht und lässt sich dann auch leichter herausnehmen, wenn der IE neue Elemente unterstützt.<br />
<samp>Beispiel: Element mit Conditional Comments</samp></p>
<pre>&lt;!--[if IE]&gt;&lt;div id=&quot;header&quot;&gt;&lt;![endif]--&gt;
&lt;header&gt;
...
&lt;/header&gt;
&lt;!--[if IE]&gt;&lt;/div&gt;&lt;![endif]--&gt;</pre>
<p>Nun lassen sich im <code>ie.css</code> diese zugefügten Elemente über ihre ID ansprechen. Statt der Formatierung des <code>header</code>-Tags wird nun die ID <code>#header</code> angesprochen und gleich formatiert.<br />
<em>Tipp: Statt um das <code>section#wrap</code> ein div zu spannen, reicht es aus, das <code>body</code>-Element dafür zu nutzen und statt des <code>body</code>-Elements das <code>html</code>-Element zu nutzen.</em></p>
<p>Weiterhin kann es vorkommen, dass man folgende Situation hat und das <code>h2</code> formatieren möchte:</p>
<pre>&lt;div id=sidebar&gt;
&lt;aside&gt;
  &lt;header&gt;
   &lt;h2&gt;...&lt;/h2&gt;
&lt;/header&gt;
...</pre>
<p>Man könnte jetzt überlegen und den Fehler machen, das <code>h2</code> so anzusprechen:</p>
<pre>#sidebar &gt; * &gt; * &gt; h2</pre>
<p> Jedoch sollte man sich noch einmal daran erinnern, wie der IE das unbekannte Element umsetzen möchte:</p>
<pre>&lt;div id=sidebar&gt;
&lt;aside&gt;&lt;/aside&gt;
  &lt;header&gt;&lt;/header
   &lt;h2&gt;...&lt;/h2&gt;
&lt;/header&gt;&lt;//header&gt;
...</pre>
<p>Daraus ergibt sich, dass es keinen direkten Kindelemente gibt unter dem <code>aside</code>. Man muss daher wie folgt das <code>h2</code> ansprechen:</p>
<pre>#sidebar &gt; * + * + h2</pre>
<p>Mit diesen Hilfsmitteln kann man dann ein <a  href="http://fabianletscher.de/wp-content/uploads/2009/07/ie.css" title="IE Stylesheet">Stylesheet für IE optimieren.</a> Damit sieht das <a  title="Template" href="http://fabianletscher.de/wp-content/uploads/2009/07/index.html">Template</a> auch im Internet Explorer (ab Version 7) korrekt aus.</p>
]]></content:encoded>
			<wfw:commentRss>http://fabianletscher.de/css/html-5-darstellung-im-ie.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

