<?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>Blog Technologiczny ATENA &#187; xHTML</title>
	<atom:link href="http://blog.atena.pl/category/xhtml/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.atena.pl</link>
	<description>JavaEE, AJAX, xHTML, RIA, JBoss</description>
	<lastBuildDate>Fri, 20 Jan 2012 11:18:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Centrowanie w pionie za pomocą CSS</title>
		<link>http://blog.atena.pl/centrowanie-w-pionie-za-pomoca-css</link>
		<comments>http://blog.atena.pl/centrowanie-w-pionie-za-pomoca-css#comments</comments>
		<pubDate>Tue, 07 Dec 2010 14:07:26 +0000</pubDate>
		<dc:creator>Damian Zalesko</dc:creator>
				<category><![CDATA[Css]]></category>
		<category><![CDATA[xHTML]]></category>

		<guid isPermaLink="false">http://blog.atena.pl/?p=1069</guid>
		<description><![CDATA[Wpis ten poświęcony jest centrowaniu w pionie elementów blokowych HTML za pomocą CSS.  Przedstawię w nim krótko, jak wycentrować dowolnego div-a w innym kontenerze. Rozwiązanie to uwzględnia wszystkie najpopularniejsze przeglądarki łącznie z IE6. Struktura Struktura HTML składa się z trzech elementów. container &#8211; element który wyznacza nam obszar centrowania. blockOuter &#8211; element przezroczysty, przejściowy służy [...]]]></description>
			<content:encoded><![CDATA[<p>Wpis ten poświęcony jest centrowaniu w pionie elementów blokowych HTML za pomocą CSS.  Przedstawię w nim krótko, jak wycentrować dowolnego div-a w innym kontenerze. Rozwiązanie to uwzględnia wszystkie najpopularniejsze przeglądarki łącznie z IE6.</p>
<p><span id="more-1069"></span></p>
<p><strong>Struktura</strong><br />
<a href="http://blog.atena.pl/wp-content/uploads/2010/12/pozPion2.png"><img class="alignnone size-full wp-image-1105" title="pozPion" src="http://blog.atena.pl/wp-content/uploads/2010/12/pozPion2.png" alt="" width="627" height="333" /></a></p>
<p>Struktura HTML składa się z trzech elementów.</p>
<ul>
<li><em><strong>container</strong></em> &#8211; element który wyznacza nam obszar centrowania.</li>
<li><em><strong>blockOuter</strong></em> &#8211; element przezroczysty, przejściowy służy tylko do pozycjonowania elementu docelowego.</li>
<li><em><strong>blockInner</strong></em> &#8211; element docelowy, który jest centrowany, może zawierać dowolną treść.</li>
</ul>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;container&quot;</span>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;blockOuter&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;blockInner&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Blok podlegający wyrównaniu w pionie. Może być dowolnego rozmiaru.<br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span><br />
&nbsp; &nbsp;<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p><strong>Jak to działa?</strong></p>
<p>W przeglądarkach kompatybilnych z CSS 2.1 sprawa jest dosyć prosta.<br />
Rozwiązanie opiera się na atrybucie display. Formatujemy bloki, aby wyświetlały się jak tabelka i wypośrodkowujemy treść w pionie jak dla komórki tabeli.</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">.container {<br />
display: table; &nbsp; &nbsp; &nbsp; &nbsp; /* wyświetlanie jak tabela*/<br />
}<br />
.blockOuter {<br />
display: table-cell;<br />
vertical-align: middle; /* wypośrodkowywanie treści w pionie */<br />
}</div></td></tr></tbody></table></div>
<p>W przypadku przeglądarek IE6 i IE7 rozwiązanie jest bardziej skomplikowane.<br />
Tu opiera się na atrybucie position. Ograniczeniem jest, że musimy mieć z góry określoną wysokość elementu <em><strong>container</strong></em>.<br />
Element <em><strong>blockOuter</strong></em> ustawiamy tak, aby zaczynał się od połowy elementu <em><strong>container</strong></em>. Natomiast element <em><strong>blockInner</strong></em> przesuwamy o połowę elementu <em><strong>blockOuter</strong></em>. Te dwa zabiegi powodują, że element docelowy <em><strong>blockInner</strong></em> jest dokładnie na środku elementu <em><strong>container</strong></em>.</p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">.container {<br />
position: relative; /* pozycjonowanie relatywne tak aby był tutaj punkt odniesienia dla kolejnych bloków */<br />
height: 300px;&nbsp; &nbsp; &nbsp; /* ustawienie wysokości */<br />
}<br />
<br />
.blockOuter {<br />
position: absolute; /* pozycjonowanie absolutne &nbsp;*/<br />
top:50%;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /* przesuwamy element w dół dokładnie o połowę rodzica */<br />
}<br />
<br />
.blockInner {<br />
position: relative; &nbsp; &nbsp; /* pozycjonowanie relatywne */<br />
top: -50%;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /* przesuwamy element w górę dokładnie o połowę rodzica &nbsp;*/<br />
}</div></td></tr></tbody></table></div>
<p>Teraz wystarczy oba rozwiązania połączyć w całość. Proponuję robić to za pomocą komentarza warunkowego w HTML &#8211; tak aby IE dostało dodatkowe/korygujące style. W efekcie uzyskujemy nowoczesny kod dla dobrych przeglądarek i modyfikujemy tylko starsze.</p>
<p><strong>Gotowy przykład</strong></p>
<div class="codecolorer-container html4strict default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #00bbdd;">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;</span><br />
<span style="color: #00bbdd;"> &nbsp; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;</span><br />
<br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/head.html"><span style="color: #000000; font-weight: bold;">head</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/meta.html"><span style="color: #000000; font-weight: bold;">meta</span></a> <span style="color: #000066;">http-equiv</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;content-type&quot;</span> <span style="color: #000066;">content</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/html;charset=utf-8&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/style.html"><span style="color: #000000; font-weight: bold;">style</span></a>&gt;</span><br />
#container {<br />
&nbsp; &nbsp; display: table;<br />
&nbsp; &nbsp; width: 600px;<br />
&nbsp; &nbsp; height: 300px;<br />
&nbsp; &nbsp; font: 12px Verdana;<br />
&nbsp; &nbsp; background: #e0e0e0;<br />
&nbsp; &nbsp; border: solid 1px #cccccc;&nbsp; <br />
}<br />
<br />
#container .blockOuter {<br />
&nbsp; &nbsp; display: table-cell;<br />
&nbsp; &nbsp; vertical-align: middle;<br />
}<br />
<br />
#container .blockInner {<br />
&nbsp; &nbsp; width: 450px;<br />
&nbsp; &nbsp; margin: 0 auto; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /*wyrównanie bloku w poziomie*/<br />
&nbsp; &nbsp; padding: 10px;<br />
&nbsp; &nbsp; background: #f0f0f0;<br />
&nbsp; &nbsp; border: solid 1px #cccccc;<br />
}<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/style.html"><span style="color: #000000; font-weight: bold;">style</span></a>&gt;</span>&nbsp; &nbsp; &nbsp; &nbsp; <br />
<br />
<span style="color: #808080; font-style: italic;">&lt;!--[if lte IE 7]&gt;</span><br />
<span style="color: #808080; font-style: italic;">&lt;style&gt;</span><br />
<span style="color: #808080; font-style: italic;">#container {</span><br />
<span style="color: #808080; font-style: italic;">&nbsp; &nbsp; position: relative;</span><br />
<span style="color: #808080; font-style: italic;">}</span><br />
<br />
<span style="color: #808080; font-style: italic;">#container .blockOuter {</span><br />
<span style="color: #808080; font-style: italic;">&nbsp; &nbsp; position: absolute;</span><br />
<span style="color: #808080; font-style: italic;">&nbsp; &nbsp; top:50%;</span><br />
<span style="color: #808080; font-style: italic;">}</span><br />
<br />
<span style="color: #808080; font-style: italic;">#container .blockInner {</span><br />
<span style="color: #808080; font-style: italic;">&nbsp; &nbsp; position: relative;</span><br />
<span style="color: #808080; font-style: italic;">&nbsp; &nbsp; top: -50%;</span><br />
<span style="color: #808080; font-style: italic;">}</span><br />
<span style="color: #808080; font-style: italic;">&lt;/style&gt;&nbsp; &nbsp; </span><br />
<span style="color: #808080; font-style: italic;">&lt;![endif]--&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/head.html"><span style="color: #000000; font-weight: bold;">head</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/body.html"><span style="color: #000000; font-weight: bold;">body</span></a>&gt;</span><br />
<br />
<br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;container&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;blockOuter&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;blockInner&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Blok podlegający wyrównaniu w pionie. Może być dowolnego rozmiaru.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Blok podlegający wyrównaniu w pionie. Może być dowolnego rozmiaru.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Blok podlegający wyrównaniu w pionie. Może być dowolnego rozmiaru.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Blok podlegający wyrównaniu w pionie. Może być dowolnego rozmiaru.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Blok podlegający wyrównaniu w pionie. Może być dowolnego rozmiaru.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Blok podlegający wyrównaniu w pionie. Może być dowolnego rozmiaru.<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Blok podlegający wyrównaniu w pionie. Może być dowolnego rozmiaru.<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span><br />
<br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/body.html"><span style="color: #000000; font-weight: bold;">body</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/html.html"><span style="color: #000000; font-weight: bold;">html</span></a>&gt;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.atena.pl/centrowanie-w-pionie-za-pomoca-css/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SEM/SEO</title>
		<link>http://blog.atena.pl/semseo</link>
		<comments>http://blog.atena.pl/semseo#comments</comments>
		<pubDate>Wed, 19 Aug 2009 14:55:32 +0000</pubDate>
		<dc:creator>Bartosz Żukowski</dc:creator>
				<category><![CDATA[Css]]></category>
		<category><![CDATA[xHTML]]></category>

		<guid isPermaLink="false">http://blog.atena.pl/?p=465</guid>
		<description><![CDATA[Oczekujesz serwisu www przyjaznego dla wyszukiwarek i wysokich miejsc w google. Jeśli tak zapraszam do zapoznania się z podstawowymi zasadami SEM/SEO. SEM &#8211; Search Engine Marketing, czyli marketing w wyszukiwarkach &#8211; ogół działań promocyjnych (kampanie linków sponsorowanych, pozycjonowanie i optymalizacja stron WWW), które mają na celu uzyskanie jak najlepszych pozycji serwisu w (zarówno naturalnych, jak [...]]]></description>
			<content:encoded><![CDATA[<p>Oczekujesz serwisu www przyjaznego dla wyszukiwarek i wysokich miejsc w google. Jeśli tak zapraszam do zapoznania się z podstawowymi zasadami SEM/SEO.<br />
<span id="more-465"></span></p>
<blockquote><p>SEM &#8211; Search Engine Marketing, czyli marketing w wyszukiwarkach &#8211; ogół działań promocyjnych (kampanie linków sponsorowanych, pozycjonowanie i optymalizacja stron WWW), które mają na celu uzyskanie jak najlepszych pozycji serwisu w (zarówno naturalnych, jak i płatnych) wynikach wyszukiwania, na wybrane słowa / frazy kluczowe wpisywane przez użytkowników w zapytaniu do wyszukiwarki.</p></blockquote>
<p>Rozpoczynam od definicji SEM z wikipedii*, ale czynię to w określonym celu. SEM i SEO często są ze sobą mylone. SEM to pojęcie szersze, jak mówi definicja są to wszelkie działania promocyjne, natomiast SEO polegające na optymalizacji stron WWW jest częścią SEM.</p>
<p><strong>Działania SEO można podzielić na trzy główne obszary działań:</strong></p>
<ul>
<li>przyjazne adresy URL</li>
<li>konfiguracja serwerów</li>
<li>kod HTML</li>
</ul>
<p>Dzięki stosowaniu zasad SEM/SEO możliwe będzie osiągniecie wyższych miejsc w wyszukiwarkach, a co za tym idzie zwiększenie popularności optymalizowanego serwisu.</p>
<p><strong>1. Przyjazne adresy URL – o czym należy pamiętać</strong></p>
<ul>
<li>Najlepiej gdy użycie przyjaznych adresów url jest uwzględnione na etapie zbierania wymagań. Znacznie łatwiej wdrożyć takie rozwiązanie na samym początku prac, będzie to szybsze i tańsze niż późniejsze modyfikacje.</li>
<li>Przyjazny link musi odpowiadać treścią zawartości strony</li>
<li>Strony wykonane we flashu bardzo rzadko używają przyjaznych linków</li>
<li>Może zaistnieć sytuacja, w której w ramach jednego serwisu do strony X prowadzą dwa przyjazne lecz różne linki. Należy unikać nadmiarowych linków – jedna strona może posiadać jeden link, dzięki temu znika ryzyko dublowania treści.</li>
<li>Zdarzenia zachodzące na stronie powinny mieć swoje odbicie w Urlu</li>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Np. &nbsp; &nbsp; poczta.php -&amp;gt; poczta.php -&amp;gt; poczta.php<br />
napisz.php -&amp;gt; wyslij.php -&amp;gt; dziekujemy.php</div></td></tr></tbody></table></div>
<li>Nie stosujemy linków w js przez onclick</li>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&amp;lt; a href =”#” onclick=”…” &amp;gt;...&amp;lt; /a &amp;gt;</div></td></tr></tbody></table></div>
<li>Dobrze gdy treść linka odpowiada treścią stronie do której linkuje. Lepiej unikać tworzenia linków &#8216;więcej&#8217; lub &#8216;kliknij tutaj&#8217;</li>
<li>Umieszczając na stronie linki w postaci grafik konieczne jest dodanie atrybutów alt i title. To samo dotyczy prezentacji zdjęć, grafik. Treść zawarta w atrybucie alt pomoże odnaleźć zdjęcie przez wyszukiwarkę.</li>
<li>Należy unikać rozwiązania w którym wiele wywołań znajduje się pod jednym Urlem np. foto.php pod którym znajdują się dziesiątki zdjęć</li>
<li>Wprowadzając nowe wersje aplikacji należy utrzymywać przyjęty na początku standard nazewnictwa<br />
/category/01.html<br />
/category_01.html</li>
</ul>
<p><strong>2. Konfiguracja serwerów</strong></p>
<ul>
<li>Zawsze tylko przez jedną domenę dostajemy się na stronę &#8211; unikamy podwójnego adresowania. Z innych adresów dostajemy się na właściwą stronę za pomocą przekierowania stałego 301. Przekierowanie 301 przenosi page rank strony.</li>
<li>Należy unikać tymczasowego przekierowania 302 ponieważ służy ono wyłącznie do zmian tymczasowych</li>
<li>Strony błędów, np. 404, powinny być zaprojektowane w sposób umożliwiający użytkownikowi łatwy powrót do korzystania z serwisu. Aby to osiągnąć na stronach błędów umieszcza się mapy strony, wyszukiwarkę lub linki do pomocy.</li>
</ul>
<p><strong>3. Kod HTML</strong></p>
<ul>
<li>Zachowanie semantyki HTMLa wpływa pozytywnie na pozycję w wyszukiwarkach</li>
<li>Dobrze gdy każda strona posiada własny odpowiadający treści tytuł</li>
<li>Usuwamy nadmiarowy kod HTML</li>
<li>Strona powinna się walidować</li>
<li>Jeśli serwis stworzony jest we flashu należy stworzyć kopię strony w htmlu dla osób nie korzystających z flasha. Ważne, aby zachować identyczną treść.</li>
</ul>
<p>Artykuł powstał na podstawie wykładu dotyczącego SEM wygłoszonego podczas konferencji INFOSHARE 2009 w Gdańsku<br />
* Definicja SEM znajduje się pod adresem http://pl.wikipedia.org/wiki/Marketing_w_wyszukiwarkach_internetowych</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.atena.pl/semseo/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Position relative i absolute</title>
		<link>http://blog.atena.pl/position-relative-i-absolute</link>
		<comments>http://blog.atena.pl/position-relative-i-absolute#comments</comments>
		<pubDate>Tue, 28 Jul 2009 13:16:35 +0000</pubDate>
		<dc:creator>Damian Zalesko</dc:creator>
				<category><![CDATA[Css]]></category>
		<category><![CDATA[xHTML]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://blog.atena.pl/?p=527</guid>
		<description><![CDATA[Artykuł ten poświęcony jest pozycjonowaniu elementów HTML na stronie za pomocą css. Porusza też kwestię błędów jakie występują w IE6 i na co trzeba uważać pisząc kod pod tę przeglądarkę. Na wstępie chciałbym przedstawić i omówić możliwe wartości elementu w css  a mianowicie &#8222;position&#8221;. Może on przyjąć następujące wartości. static (statyczne) relative (relatywne) absolute (absolutne) [...]]]></description>
			<content:encoded><![CDATA[<p>Artykuł ten poświęcony jest pozycjonowaniu elementów HTML na stronie za pomocą css. Porusza też kwestię błędów jakie występują w IE6 i na co trzeba uważać pisząc kod pod tę przeglądarkę.</p>
<p>Na wstępie chciałbym przedstawić i omówić możliwe wartości elementu w css  a mianowicie &#8222;position&#8221;. Może on przyjąć następujące wartości.<br />
<span id="more-527"></span></p>
<ul>
<li>static (statyczne)</li>
<li>relative (relatywne)</li>
<li>absolute (absolutne)</li>
<li>fixed (ustalone)</li>
</ul>
<p><strong>Pozycjonowanie statyczne</strong><br />
Elementy z <em>position:static</em>. Jest to wartość domyślna dla wszystkich elementów. Umieszczenie elementu zależy od pozycji w dokumencie.</p>
<p><strong>Pozycjonowanie relative</strong><br />
Elementy z <em>position:relative</em>. Możemy przesunąć element w dowolnym kierunku od miejsca w którym by się znalazł domyślnie.<br />
Możliwości przesunięcia to top, bottom, left, right. Jeśli przesuniemy element nadając mu top:10px to element przesunie się o 10px w dół. Zajmuje on miejsce tam gdzie powinien być domyślnie wyświetlany a pokazywany jest w innym miejscu. Można nadawać też wartości ujemne.<br />
Tak pozycjonowany element staje się kontenerem dla wszystkich innych, które są absolutnie w nim pozycjonowane.</p>
<p><strong>Pozycjonowanie absolut</strong><br />
Elementy z <em>position:absolute</em>. Możemy przesunąć element w dowolnym kierunku od miejsca położenia w kontenerze. Kontenerem są elementy z position relative, absolute, fixed. Gdy niema takiego elementu nadrzędnego to wybiera go przeglądarka. Może to być body ale nie musi.<br />
Możliwości przesunięcia to top, bottom, left, right. Elementy pozycjonowane w ten sposób nie zajmują miejsca w dokumencie. Możemy więc przenieść element poza widzialny obszar w przeglądarce.</p>
<div id="attachment_588" class="wp-caption alignnone" style="width: 310px"><img class="size-full wp-image-588" title="position" src="http://blog.atena.pl/wp-content/uploads/2009/07/position.jpg" alt="position:relative i position:absolute" width="300" height="300" /><p class="wp-caption-text">position:relative i position:absolute</p></div>
<p><strong>Pozycjonowanie fixed</strong><br />
Elementy z position:fixed. Możemy przesunąć element w dowolnym kierunku od miejsca położenia kontenera, którym w tym przypadku zawsze jest okno przeglądarki.<br />
Możliwości przesunięcia to top, bottom, left, right. Elementy pozycjonowane w ten sposób nie zajmują miejsca w dokumencie. Możemy więc przenieść element poza widzialny obszar w przeglądarce.<br />
Niestety ten typ pozycjonowanie nie jest obsługiwany w IE6.</p>
<p><strong>z-index</strong><br />
Elementy pozycjonowane mają wagę widoczności elementu na osi-z czyli warstwy. Widoczność określa nam atrybut z-index. Czym wartość liczbowa jest większa tym większy jest priorytet widoczności.</p>
<p><strong>position relative, absolut w IE6 &#8211; błędy IE </strong></p>
<p>Zakładamy że &#8222;blok&#8221; znajduje się zawsze w &#8222;kontenerze&#8221;</p>
<ol>
<li>Kontener ma ustaloną wysokość i overflow:auto. Jeżeli wewnątrz znajduje się blok  z position:relative o wysokości dłuższej niż kontener, blok ten wycieknie poza obszar kotenera i będzie widoczny scrollbar. Błąd występuje w IE6.</li>
<li>Jeżeli nadamy elementowi body właściwości margin:0 auto i szerokość w px i umieścimy w nim blok z position:relative, to podczas zmiany wielkości okna w przeglądarce blok będzie zachowywał się jak z position:fixed. Błąd występuje w IE6.</li>
<li>Jeżeli kontener ma właściwość position:relative a blok zawarty wewnątrz position:absolute, to nadając blokowi właściwość bottom powodujemy że IE6 nie umieści go tam gdzie powinien lub blok nie będzie widoczny.</li>
<li>Stosując jednocześnie w bloku właściwości top:0 i bottom:0 lub left:0 i right:0 powodujemy że blok rozciągnie się nam na 100% wielkości kontenera. Niestety żadna wersja IE tnie interpretuje tego w ten sposób.</li>
<li>Jeżeli kontener ma szerokość o wartości nieparzystej i position:relative, to nadając blokowi wewnątrz właściwości position:absolute i width:100%. IE6 zaokrągli nam szerokość do parzystej odejmując 1px. (np. szerokość kontenera ma 101px to IE6 przeliczy to jako 100px dla bloku)</li>
<li>Jeżeli kontener ma position:relative i wielkość o wartości nieparzystej, a blok posiada position:absolute i nadamy mu właściwości right bądź bottom to przeliczając IE6 odejmie 1px źle pozycjonując element.</li>
<li>Jeżeli wypozycjonujemy blok nad tagiem select to w IE6 select zawsze będzie przebijał się na zewnątrz niezależnie od ustawionych wartości z-index.</li>
</ol>
<p>Struktury kodowania w HTML i css  przedstawione powyżej są często spotykane przy wytwarzaniu layoutu. Warto je znać projektując stronę internetową, która ma być kompatybilna z IE6. I oczywiście modyfikować przedstawione rozwiązania bądź stosować inne.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.atena.pl/position-relative-i-absolute/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Kompatybilność IE6 -&gt; IE7</title>
		<link>http://blog.atena.pl/zmiana-ie6-ie7</link>
		<comments>http://blog.atena.pl/zmiana-ie6-ie7#comments</comments>
		<pubDate>Mon, 04 May 2009 14:10:07 +0000</pubDate>
		<dc:creator>Damian Zalesko</dc:creator>
				<category><![CDATA[Css]]></category>
		<category><![CDATA[xHTML]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[IE]]></category>

		<guid isPermaLink="false">http://blog.atena.pl/?p=261</guid>
		<description><![CDATA[Tworząc aplikację Web zawsze stajemy przed wyzwaniem &#8211; &#8222;aplikacja Web ma działać pod IE6&#8243;. Aby dokładnie odwzorować wygląd z projektu często tworzymy mniej lub bardziej skomplikowane obejścia, hacki, dołączamy  JS. Pomimo naszych starań ostatecznie i tak zauważamy różnicę wyglądów, działania  pomiędzy przeglądarkami Microsoftu.  Chciałbym przedstawić kilka potencjalnych zmian dokonanych w IE7 w odniesieniu do IE6. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-264" title="ie" src="http://blog.atena.pl/wp-content/uploads/2009/05/ie.jpeg" alt="ie" width="111" height="111" />Tworząc aplikację Web zawsze stajemy przed wyzwaniem &#8211; &#8222;aplikacja Web ma działać pod IE6&#8243;. Aby dokładnie odwzorować wygląd z projektu często tworzymy mniej lub bardziej skomplikowane obejścia, hacki, dołączamy  JS. Pomimo naszych starań ostatecznie i tak zauważamy różnicę wyglądów, działania  pomiędzy przeglądarkami Microsoftu.  Chciałbym przedstawić kilka potencjalnych zmian dokonanych w IE7 w odniesieniu do IE6.<br />
<span id="more-261"></span></p>
<p><strong>Rozpoznawanie wersji IE7.</strong><br />
Zmienił się User-Agent gdzie widnieje teraz wersja 7.0. Kody Js mające na celu sprawdzenie typu przeglądarki powinny uwzględniać IE7.</p>
<p><a href="http://blogs.msdn.com/ie/archive/2005/04/27/412813.aspx ">http://blogs.msdn.com/ie/archive/2005/04/27/412813.aspx </a></p>
<p><strong>CSS &#8211; Box Model</strong> Zmiana w box model. Atrybuty &#8222;width&#8221; i &#8222;height&#8221; zawsze trzymają rozmiar box-a w IE 7, już nie nie poszerzają do wielkości kontentu wychodzącego za te wymiary jak to miało miejsce w IE 6.</p>
<p><strong>CSS &#8211; Nie działające hacki spod IE6</strong></p>
<p>* html &#8211; * html .foo{}  &#8211; hack z dopisywaniem * html.</p>
<p>_  &#8211; .foo{_height: 100px;} &#8211; hack z używaniem podkreślenia przed atrybutem.</p>
<p>/* */ &#8211; .foo\{height /* */: 300px;} &#8211; hack z użyciem komentarza po nazwie atrybutu, atrybut był niewidoczny dla IE 6</p>
<p>html &gt; body , head+body , head:first-child + body &#8211; selektory nieobsługiwane przez IE6 które używane były aby ukryć atrybut przed przeglądarką działają w IE7 i są interpretowane.</p>
<p><a href="http://msdn.microsoft.com/en-us/library/bb250496.aspx">http://msdn.microsoft.com/en-us/library/bb250496.aspx</a></p>
<p><strong>SSL, HTTPS</strong></p>
<p>SSL 2.0 &#8211; wsparcie jest domyślnie wyłączone</p>
<p>HTML scriptlets &#8211; są domyślnie wyłączone</p>
<p>HTTPS &#8211; strony muszą dostarczyć aktualny podpis cyfrowy dla ich Dns-ów</p>
<p>HTTPS &#8211; Kod HTTP nie może być dołączony do strony z HTTPS</p>
<p><a href="http://msdn.microsoft.com/en-us/library/bb250503(VS.85).aspx">http://msdn.microsoft.com/en-us/library/bb250503(VS.85).aspx</a></p>
<p><strong>ActiveX</strong></p>
<p>Pod IE7 jesteśmy pytani czy chcemy uruchomić ActiveX, zainstalować wtyczkę, dodatkowe zabezpieczenia.  Nie jesteśmy pytani przy zaakceptowanych wcześniej ActiveX, Ściąganych przez IE7 lub powszechnych zaakceptowanych na listach kontrolnych.</p>
<p><a href="http://msdn.microsoft.com/en-us/library/bb250471.aspx">http://msdn.microsoft.com/en-us/library/bb250471.aspx</a></p>
<p><strong>Linki</strong></p>
<li> <a href="http://www.microsoft.com/windows/downloads/ie/checklists.mspx">http://www.microsoft.com/windows/downloads/ie/checklists.mspx</a></li>
<li> <a href="http://msdn.microsoft.com/en-us/library/bb250493(VS.85).aspx">http://msdn.microsoft.com/en-us/library/bb250493(VS.85).aspx</a></li>
<li> <a href="http://msdn.microsoft.com/en-us/ie/aa740486.aspx">http://msdn.microsoft.com/en-us/ie/aa740486.aspx</a></li>
]]></content:encoded>
			<wfw:commentRss>http://blog.atena.pl/zmiana-ie6-ie7/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Semantyka dla programisty</title>
		<link>http://blog.atena.pl/semantyka-dla-programisty</link>
		<comments>http://blog.atena.pl/semantyka-dla-programisty#comments</comments>
		<pubDate>Fri, 10 Apr 2009 09:44:58 +0000</pubDate>
		<dc:creator>Damian Zalesko</dc:creator>
				<category><![CDATA[Css]]></category>
		<category><![CDATA[xHTML]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://blogtechnologiczny.home.pl/?p=154</guid>
		<description><![CDATA[Notka ta ma za zadanie ułatwić wspólną pracę Programistów i Webmasterów.
Jako były programista a aktualny Webmaster chciałbym omówić kilka podstawowych tagów, gdzie najlepiej je użyć aby zminimalizować przyszłe poprawki w kodzie HTML oraz poruszyć kilka dobrych praktyk kodowania, które zaoszczędzą nam wiele czasu i nerwów.<br/>
Postaram się wybrać tylko najistotniejsze tagi i kwestie dotyczące Web, które to zapewne wszyscy znają a niektórzy nawet się do nich stosują. :)]]></description>
			<content:encoded><![CDATA[<style type="text/css">
.dz {color: #444444;padding:5px 0 0 0;}
.dz .head2 {font-size:14px !important;font-weight:bold;}
.dz .head3 {font-size:15px !important;font-weight:bold;padding:20px 0 0 0;}
.dz .head4 {font-size:13px !important;font-weight:bold;margin:10px 0 0 0;}
.dz p {padding:0;margin:0;}
.dz .intro p, .dz .outro p {padding:3px 0 0 10px;}
.dz .tags .tag {padding:5px 0 0 10px;}
.dz .blogList {padding-left:10px;}
.dz span.why {color:#666666;display:block;}
.dz span.important {color:#ff0000;}
.dz span.tags {color:#00aa00;}
.dz span.bad {color:#00aa00;text-decoration:line-through;}
.dz dt {font-weight:bold;color:#666666;}
.dz dd {margin:10px;}
.dz dd img {padding:2px;border:solid 1px #cccccc;}
.dz li {text-indent:0;}
</style>
<div class="dz">
<p class="head2">czyli minimum co powinien wiedzieć programista o Kodowaniu HTML</p>
<p class="head3">Krótko o tagach</p>
<div class="intro">
<p>
Notka ta ma za zadanie ułatwić wspólną pracę Programistów i Webmasterów.<br />
Jako były programista a aktualny Webmaster chciałbym omówić kilka podstawowych tagów, gdzie najlepiej je użyć aby zminimalizować przyszłe poprawki w kodzie HTML oraz poruszyć kilka dobrych praktyk kodowania, które zaoszczędzą nam wiele czasu i nerwów.<br/><br />
Postaram się wybrać tylko najistotniejsze tagi i kwestie dotyczące Web, które to zapewne wszyscy znają a niektórzy nawet się do nich stosują. <img src='http://blog.atena.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p>
</div>
</div>
<p><span id="more-154"></span></p>
<div class="dz">
<p class="head3">Tagi i zastosowanie</p>
<div class="tags">
<div class="tag">
<p class="head4"><span class="tags">&lt;div&gt;</span> &#8211; Box <img src='http://blog.atena.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>
Używamy go do definiowania struktury strony, podstawowych bloków, niezależnych powtarzalnych części kodu a także obszarów przeznaczonych na dane pobierane przez ajax-a.</p>
<dl>
<dt>przykład struktury opartej na blokach</dt>
<dd><img src="http://blogtechnologiczny.home.pl/wp-content/uploads/2009/04/div_11.jpg" alt="div" /></dd>
</dl>
</div>
<div class="tag">
<p class="head4"><span class="tags">&lt;ul&gt; , &lt;li&gt;</span> &#8211; Listy</p>
<p>
Używamy go do wszelakiego rodzaju menu (podobnie poziome jak i pionowe), wypunktowywanie cech lub właściwości</p>
<dl>
<dt>przykłady użycia list</dt>
<dd><img src="http://blogtechnologiczny.home.pl/wp-content/uploads/2009/04/ul-exammmple_1.jpg" alt="zakładki" /><br />
<small>źródło: http://www.wp.pl</small></dd>
<dd><img src="http://blogtechnologiczny.home.pl/wp-content/uploads/2009/04/ul-exammple_2.jpg" alt="linki" /><br />
<small>źródło: http://www.pino.pl/</small></dd>
<dd><img src="http://blogtechnologiczny.home.pl/wp-content/uploads/2009/04/ul-example_3.jpg" alt="wypunktowanie/menu" /></dd>
</dl>
</div>
<div class="tag">
<p class="head4"><span class="tags">&lt;p&gt;</span> &#8211; Paragrafy</p>
<p>
Używamy go do przechowywania tekstu, oddzielania bloków tekstu. Kilka bloków p możemy spiąć div-em.</p>
<dl>
<dt>przykład użycia paragrafów i wyróżnienia span</dt>
<dd><img src="http://blogtechnologiczny.home.pl/wp-content/uploads/2009/04/p-exammmple_1.jpg" alt="paragrafy i wyróżnienia" /><br />
<small>źródło: http://www.wp.pl/</small></dd>
</dl>
</div>
<div class="tag">
<p class="head4"><span class="tags">&lt;h1&gt; , &lt;h2&gt; , &lt;h3&gt; &#8230;</span> &#8211; Nagłówki</p>
<p>Jeśli struktura nagłówków nie jest z góry ustalona w projekcie (np.pozycjonowanie) to lepiej ich nie używać tylko stosować <span class="tags">&lt;div&gt;</span> a resztę pozostawić WM on to pozmienia.</p>
</div>
<div class="tag">
<p class="head4"><span class="tags">&lt;span&gt;</span> &#8211;  Box dla tekstu </p>
<p>Używamy go do wyróżniania części tekstu.</p>
</div>
<div class="tag">
<p class="head4"><span class="tags">&lt;table&gt;</span> , <span class="tags">&lt;tr&gt;</span> , <span class="tags">&lt;th&gt;</span> , <span class="tags">&lt;td&gt;</span> &#8211; Tabelki</p>
<p>
Umieszczamy tu dane wyłącznie tabelaryczne.<br />
Istnieje tutaj istotna sprawa, należy wpisywać w html w każdej tabeli atrybut cellspacing=&quot;0&quot;.<br />
<span class="why"><span class="tags">&lt;table cellspacing=&quot;0&quot;&gt;</span> &#8211; Cellspacing jest to odległość komórek tabeli od siebie, różne przeglądarki mają różną domyślną wartość i tej wartości nieda się zmienić prze css w IE6</span></p>
<dl>
<dt>poprawne miejsce użycia tabeli</dt>
<dd><img src="http://blogtechnologiczny.home.pl/wp-content/uploads/2009/04/table-exammmple_1.jpg" alt="użycie tabeli" /><br />
<small>źródło: http://tabelekaloryczne.w.interia.pl/</small></dd>
</dl>
</div>
<div class="tag">
<p class="head4"><span class="tags">&lt;form&gt; , &lt;fieldset&gt;, &lt;input&gt;, &lt;label&gt; &#8230;</span> &#8211; Formularze</p>
<p>Trzymając się poniższej struktury nie powinno być problemów:<br />
<span class="tags"><br />
&lt;form&gt;<br />
&nbsp;&lt;fieldset&gt;<br />
&nbsp;&nbsp;&lt;p&gt; &lt;label for=&quot;cosid1&quot;&gt;cos1 &lt;/label&gt;&lt;input id=&quot;cosid1&quot; /&gt; &lt;/p&gt;<br />
&nbsp;&nbsp;&lt;p&gt; &lt;label for=&quot;cosid2&quot;&gt;cos2 &lt;/label&gt;&lt;input id=&quot;cosid2&quot; /&gt;&lt;/p&gt;<br />
&nbsp;&lt;fieldset&gt;<br />
&lt;/form&gt;<br />
</span></p>
<dl>
<dt>stosując powyższy szkielet przy drobnej modyfikacji jesteśmy w stanie uzyskać taki wygląd formularza.</dt>
<dd><img src="http://blogtechnologiczny.home.pl/wp-content/uploads/2009/04/form-example_1.jpg" alt="ostylowany formularz" /></dd>
</dl>
</div>
</div>
<p class="head3">Dobre praktyki ułatwiające pracę</p>
<div class="practics">
<ul class="blogList">
<li>
Niech każda strona ma unikalną klasę w &#8222;container&#8221; całej strony bądz chociaż ostatecznie w &#8222;content&#8221;<br />
<span class="why">Pozwala to przy tych samych klasach na powtarzających się elementach zmodyfikować wygląd na jednej stronie. Nie martwimy się co z wyglądem na pozostałych stronach, nie prosimy PR o zmianę koncepcji kodowania.</span>
</li>
<li>
Gdy nazywamy class,id niech będzie ona w standardzie &#8222;firstLowerRestUpper&#8221;.<br />
Niech class,id niesie treść ułatwiającą jej funkcję i położenie. Nie tworzymy zbyt długich wieloczłonowych nazw.<br />
<span class="why"><span class="tags">&lt;div class=&quot;nazwaMojejKlasy&quot;&gt;</span> Ułatwia znalezienie i rozeznanie w funkcji elementu dla PR i WM.</span>
</li>
<li>
Nie używamy atrybutu style w tagach.<br />
<span class="why"><span class="tags bad">&lt;div style=&quot;margin:10px 0 0 0;&quot;&gt;</span><br />
Koszmar dla WM. Uniemożliwia często ostylowanie elementu.<br />
Trzeba znaleźć blok i wyrzucić style inline zanim zacznie się zmianę stylu elementu.<br />
Rozdzielenie warstwy kodu od prezentacji.<br />
</span>
</li>
<li>
Nie używamy tagów formatujących wygląd tekstu. <span class="tags">&lt;font&gt; , &lt;b&gt; , &lt;i&gt; </span><br />
<span class="why"><span class="tags bad">&lt;font color=&quot;red&quot;&gt;&lt;b&gt;mój formatowany tekst&lt;/b&gt;&lt;/font&gt;</span><br />
Koszmar dla WM. Uniemożliwia często ostylowanie elementu.<br />
Trzeba znaleźć blok i wyrzucić style inline zanim zacznie się zmianę stylu elementu.<br />
Powinniśmy zastosować <span class="tags">&lt;span class=&quot;nazwaMojejKlasy&quot;&gt;</span>. Rozdzielenie warstwy kodu od prezentacji.<br />
</span><br />
Staramy się zastąpić praktykę stosowania tagu <span class="tags">&lt;strong&gt; , &lt;em&gt;</span> tagiem <span class="tags">&lt;span&gt;</span><br />
WM będzie musiał ostylować ten element tak czy inaczej czyli lepiej zastosować <span class="tags">&lt;span&gt;</span>.
</li>
</ul>
</div>
<p class="head3">Podsumowanie</p>
<div class="outro">
<p>Stosując te kilka zasad powinniśmy zaoszczędzić sobie sporo czasu.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.atena.pl/semantyka-dla-programisty/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

