<?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>m1chu.eu - another devblog &#187; Szybka porada</title>
	<atom:link href="http://m1chu.eu/category/ogolne/szybka-porada/feed/" rel="self" type="application/rss+xml" />
	<link>http://m1chu.eu</link>
	<description>we live, as we dream... alone - another devblog</description>
	<lastBuildDate>Sun, 14 Nov 2010 11:07:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Szybka porada: jak zmusić Internet Explorer 8 i Firefox 2 do obsługi HTML 5? (#1)</title>
		<link>http://m1chu.eu/2010/08/24/szybka-porada-jak-zmusic-internet-explorer-8-i-firefox-2-do-obslugi-html-5-1/</link>
		<comments>http://m1chu.eu/2010/08/24/szybka-porada-jak-zmusic-internet-explorer-8-i-firefox-2-do-obslugi-html-5-1/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 20:38:47 +0000</pubDate>
		<dc:creator>m1chu</dc:creator>
				<category><![CDATA[(x)HTML]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Pozostałe]]></category>
		<category><![CDATA[Szybka porada]]></category>
		<category><![CDATA[Webhosting]]></category>
		<category><![CDATA[createelement]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[firefox 2]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[internet explorer]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[porada]]></category>
		<category><![CDATA[shiv]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://m1chu.eu/?p=1825</guid>
		<description><![CDATA[Sieć została ogarnięta szałem najnowszej, piątej wersji języka HTML. Jak to zazwyczaj bywa słabo z jej obsługą radzi sobie Internet Explorer. We wszystkich wydanych wersjach pojawia się problem z parsowaniem elementów języka HTML 5, a co za tym idzie nie ma domyślnie możliwości ich poprawnego ostylowania. Podobny problem w przeszłości występował w Firefoksie 2. Zarys [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="iborder" src="http://images.m1chu.eu/index.php?res=MjJfMDhfMTBfcXVpY2tfaGludF9pZThfYW5kX2h0bWw1O3F1aWNrX2hpbnRfaWU4X2FuZF9odG1sNV9wb3N0X2hlYWRlci5wbmc=" alt="Jak zmusić Internet Explorer 8 do obsługi HTML 5?" style="height: 119px;" /></p>
<p>Sieć została ogarnięta szałem najnowszej, <a href="http://m1chu.eu/2010/03/19/html5-obsluga-elementow-audio-i-video/" >piątej wersji języka HTML</a>. Jak to zazwyczaj bywa słabo z jej obsługą radzi sobie Internet Explorer. We wszystkich wydanych wersjach pojawia się problem z parsowaniem elementów języka HTML 5, a co za tym idzie nie ma domyślnie możliwości ich poprawnego ostylowania. Podobny problem w przeszłości występował w Firefoksie 2.</p>
<p><span id="more-1825"></span></p>
<h2>Zarys problemu</h2>
<p>Załóżmy więc, że tworzymy nowy projekt i jesteśmy na etapie dodawania nagłówka oraz stopki dokumentu.</p>
<pre class="brush: xml; title: ;">&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;meta charset=&quot;utf-8&quot;&gt;
    &lt;title&gt;Obsługa HTML 5 z CSS&lt;/title&gt;
    &lt;style&gt;
    body { text-align: center; margin: 0; padding: 0; font-family: Tahoma, Verdana, Arial; font-size: 11px; }
    header { font-style: italic; width: 770px; height: 70px; padding: 15px; margin: 5px auto; background-color: #FC0; text-align: left; }
    footer { font-weight: bold; clear: both; width: 770px; height: 15px; padding: 15px; margin: 5px auto; background-color: #FC0; text-align: left; }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;header&gt;Nagłówek&lt;/header&gt;
    &lt;footer&gt;Stopka&lt;/footer&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Nadaliśmy powyżej kilka atrybutów stylów pozycjonujących elementy oraz nadających im odpowiedni wygląd. Po przetestowaniu w Internet Explorerze i alternatywnych przeglądarkach zobaczymy jednak różne wyniki.</p>
<p style="text-align: center; font-size: 10px;"><img class="iborder" src="http://images.m1chu.eu/index.php?res=MjJfMDhfMTBfcXVpY2tfaGludF9pZThfYW5kX2h0bWw1O3F1aWNrX2hpbnRfaWU4X2FuZF9odG1sNV8wMl9meDQucG5n" alt="Wynik w Firefoksie 4" style="height: 298px;" /><br />Wynik w Firefoksie 4.</p>
<p style="text-align: center; font-size: 10px;"><img class="iborder" src="http://images.m1chu.eu/index.php?res=MjJfMDhfMTBfcXVpY2tfaGludF9pZThfYW5kX2h0bWw1O3F1aWNrX2hpbnRfaWU4X2FuZF9odG1sNV8wMV9pZTgucG5n" alt="Wynik w Internet Explorerze 8" style="height: 298px;" /><br />Wynik w Internet Explorerze 8.</p>
<h2>Internet Explorer &#8211; rozwiązanie pierwsze</h2>
<p>Aby pozbyć się tego problemu należy do sekcji <code>head</code> wstawić:</p>
<pre class="brush: xml; title: ;">&lt;script&gt;
document.createElement('header');
document.createElement('footer');
&lt;/script&gt;</pre>
<h2>Internet Explorer &#8211; rozwiązanie drugie</h2>
<p>Dla każdej wersji Internet Explorera można także dodać do dokumentu HTML (w sekcję <code>head</code>) zewnętrzny kod JavaScript, dzięki któremu osiągniemy wyżej opisany skutek.</p>
<pre class="brush: xml; title: ;">&lt;!--[if IE lt 9]&gt;
  &lt;script src=&quot;http://html5shiv.googlecode.com/svn/trunk/html5.js&quot;&gt;&lt;/script&gt;
&lt;![endif]--&gt;</pre>
<h2>Firefox 2</h2>
<p>Niespełna jeden procent internautów nadal używa drugiej odsłony popularnego lisa. Zarówno on, jak i wszystkie przeglądarki oparte na silniku Gecko pre 1.9b5 (np. <a target="_blank" href="http://caminobrowser.org/" >Camino</a> 1.x) posiadają <a target="_blank" href="http://blog.whatwg.org/supporting-new-elements-in-firefox-2" >błąd parsowania</a> dzięki któremu w przypadku otwarcia nowego znacznika każdy nieznany, wcześniej otwarty zostanie automatycznie zamknięty.</p>
<p>Rozważmy więc przykładowy kod.</p>
<pre class="brush: xml; title: ;">&lt;body&gt;
    &lt;header&gt;&lt;h1&gt;Nagłówek&lt;/h1&gt;&lt;/header&gt;
    &lt;footer&gt;
        &lt;p&gt;&lt;strong&gt;S&lt;/strong&gt;topka&lt;/p&gt;
    &lt;/footer&gt;
&lt;/body&gt;</pre>
<p>Przeglądarki oparte na omawianej wersji silnika Gecko przeparsują go w następujący sposób:</p>
<pre class="brush: xml; title: ;">&lt;body&gt;
    &lt;header&gt;&lt;/header&gt;&lt;h1&gt;Nagłówek&lt;/h1&gt;
    &lt;footer&gt;&lt;/footer&gt;&lt;p&gt;&lt;strong&gt;S&lt;/strong&gt;topka&lt;/p&gt;
&lt;/body&gt;</pre>
<p>Aby rozpocząć modyfikacje należy wykonać <a target="_blank" href="http://remysharp.com/2009/04/14/html5-and-firefox2/" >dwie rzeczy</a>:</p>
<ol>
<li>Wykonać przekierowanie przykładowo za pomocą <code>mod_rewrite</code> lub PHP tak, aby Firefox 2 uważał analizowany dokument jako XHTML
<ul>
<li>
<pre class="brush: plain; title: ;">RewriteCond %{REQUEST_URI} \.html$
RewriteCond %{HTTP_USER_AGENT} rv:1\.(([1-8]|9pre|9a|9b[0-4])\.[0-9.]+).*Gecko
RewriteRule .* - [T=application/xhtml+xml]</pre>
</li>
<li>
<pre class="brush: php; title: ;">if (preg_match('/rv:1\.(([1-8]|9pre|9a|9b[0-4])\.[0-9.]+).*Gecko/', $_SERVER['HTTP_USER_AGENT'])) {
  header('Content-type: application/xhtml+xml');
}</pre>
</li>
</ul>
</li>
<li>Dodać atrybut <code>xmlns</code> do znacznika <code>html</code>
<pre class="brush: xml; title: ;">&lt;html lang=&quot;pl&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;</pre>
</li>
</ol>
<p>W tym wypadku należy jednak pamiętać o tym, że XML jest wrażliwy na encje HTML-owe. Przykładowo więc używanie <code>&#038;</code><code>sdot;</code> należy zaniechać na rzecz <code>&#038;</code><code>#8901;</code>.</p>
<h2>Następnym razem dowiecie się&#8230;</h2>
<p>jak stworzyć wielokolumnową treść w CSS3?</p>
]]></content:encoded>
			<wfw:commentRss>http://m1chu.eu/2010/08/24/szybka-porada-jak-zmusic-internet-explorer-8-i-firefox-2-do-obslugi-html-5-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

