<?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>adamczuk.net.pl &#187; CSS</title>
	<atom:link href="http://adamczuk.net.pl/kategoria/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://adamczuk.net.pl</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Tue, 20 Jul 2010 16:48:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>myBlog &#8211; prosta platforma blogowa</title>
		<link>http://adamczuk.net.pl/2010/07/20/myblog-prosta-platforma-blogowa/</link>
		<comments>http://adamczuk.net.pl/2010/07/20/myblog-prosta-platforma-blogowa/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 16:21:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projekty]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=328</guid>
		<description><![CDATA[Nieoficjalne przedstawienie prostej, autorskiej platformy blogowej.]]></description>
			<content:encoded><![CDATA[<p>Istnieje wiele platform blogowych. Część z nich to niezależne silniki jak <a href="http://wordpress.org/">WordPress</a>, czy <a href="http://www.movabletype.org/">MovableType</a>, a inne to produkty zintegrowane z konkretnymi serwisami, jak <a href="http://www.blogger.com/">Blogger</a> czy <a href="http://www.tumblr.com/">Tumblr</a>. Istnieje również wiele polskich serwisów, które pozwalają na szybkie stworzenie dziennika internetowego i bezstresowe blogowanie. Najpopularniejsze to <a href="http://jogger.pl/">Jogger</a> i <a href="http://www.blox.pl/">Blox</a>. Zdarza się, że powyższe rozwiązania nie spełniają naszych oczekiwań, co wówczas prowadzi do wyważania otwartych drzwi.<br />
<span id="more-328"></span></p>
<p>Tworzenie aplikacji internetowych to skomplikowany, czasochłonny i nie zawsze opłacalny proces.</p>
<p><quote>Dlaczego wielu programistów pisze własne aplikacje, frameworki, biblioteki i inne rozwiązania?</quote></p>
<p>Po prostu wychodzą z przekonania, że sami zrobią to lepiej. Czasami zdarza się, że dzięki temu podejściu rodzą się prawdziwe perełki. Często wielkie molochy tracą klientów, użytkownicy znajdują produkty skrojone na miarę ich potrzeb i każdy może być zadowolony.</p>
<p>Pozostałe przypadki to zmarnowany potencjał, czas i zasoby, bo projekt umiera, zanim rozpoczął żywot. Dopóki nie rozpoczniesz tworzenia nowej jakości nie będziesz, miał pewności co do swojej wartości.</p>
<h3>Właściwy wpis</h3>
<p>Często zastanawia mnie kształt moich wypowiedzi formułowanych w stanie, jak najbardziej trzeźwym. Jestem przecież człowiek technicznych, któremu nie obce powinno być prasowanie, ale już bogaty język podczas wszelkich wypowiedzi, co najmniej zadziwia.</p>
<p>Człowiek uczy się przez lata, choć nie zawsze ma na to czas i chęci. Najlepszym przykładem moich osiągnięć jest <a href="http://squarezone.pl/">SquareZone</a>. Prosty, ale funkcjonalny serwis, który przystępnie oferuje informacje użytkownikom. Tym razem przyszedł czas na nowy przykład.</p>
<p><strong>MyBlog</strong> &#8211; nazwa kodowa powinna być bardziej tajemnicza, ale projekt jest w zbyt wczesnym stadium, mimo wielomiesięcznej pracy przy jego tworzeniu. Otóż wspomniana aplikacja oferuje lub będzie oferowała w przyszłości funkcjonalności znane z popularnych systemów blogowych.</p>
<p>Architektura systemu po części czerpała ze znanego Wordpressa, jednak największym atutem omawianej aplikacji jest wydajność i zgodność ze standardami. Wszystkie testy i szczegóły zostaną przedstawione wkrótce. Niedługo postaram się przedstawić kolejne funkcjonalności oraz założenia rozwojowe.</p>
<p>Obecnie nie mam pewności czy kod źródłowy zostanie udostępniony publicznie, jednak wszelkie opinie na temat działania lub architektury są mile widziane.</p>
<p>Wersja demonstracyjna <a href="http://demo.ladamczuk.kei.pl">myBlog</a>dostępna jest w sieci.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2010/07/20/myblog-prosta-platforma-blogowa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS i Ajax. Strony WWW zgodne ze standardami sieciowymi W3C</title>
		<link>http://adamczuk.net.pl/2010/06/15/css-i-ajax-strony-www-zgodne-ze-standardami-sieciowymi-w3c/</link>
		<comments>http://adamczuk.net.pl/2010/06/15/css-i-ajax-strony-www-zgodne-ze-standardami-sieciowymi-w3c/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 16:46:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Książki]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[helion]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=309</guid>
		<description><![CDATA[Krótka recenzja książki na temat arkuszy stylów kaskadowych oraz asynchronicznych żądań.]]></description>
			<content:encoded><![CDATA[<p><a href="http://adamczuk.net.pl/wp-content/uploads/2010/06/css_and_ajax.jpg"><img src="http://adamczuk.net.pl/wp-content/uploads/2010/06/css_and_ajax.jpg" alt="css_and_ajax" title="css_and_ajax" width="140" height="200" class="left size-full wp-image-310" /></a>Jedna z wielu książek z serii &#8220;Autorytety Informatyki&#8221; przetłumaczona przez wydawnictwo Helion. Tworzenie nowoczesnych stron internetowych to niełatwa praca, szczególnie jeśli rygorystycznie podchodzi się do tematu standardów sieciowych. Korzyści płynące z zastosowania kaskadowych arkuszy stylów, nowoczesnych technologii oraz inteligentnych technik programistycznych są niezaprzeczalne. Podstawowy warunek to właściwe wykorzystanie standardów sieciowych.<span id="more-309"></span></p>
<p><em>CSS i Ajax. Strony WWW zgodne ze standardami sieciowymi W3C</em> to lekka propozycja dla osób związanych z tworzeniem i projektowaniem stron internetowych. Fanatyczni koderzy, który dzień bez kilku linii kodu uważają za stracony nie znajdą w tej książce samych przykładów. Nietypową koncepcję rozważań na temat standardów sieciowych czyta się bardzo sprawnie, jednak wielostronicowe rozwodzenie się nad pojedynczą myślą po pewnym czasie zdecydowanie męczy.</p>
<p>Autorzy dokładnie opisują swoją pracę przy kolejnych projektach. Rozprawiają o napotkanych problemach, własnych pomysłach, sugestiach przełożonych, aż nieszczęśliwe przypadki losowe. Kolejne rozdziały pokazują jak wykorzystuje się standardy sieciowe, w szczególności arkusze stylów kaskadowych i języki hipertekstowe.</p>
<p>Tytuł książki sugeruje połączenie CSS oraz AJAX. Jednak niewiele informacji znajdziemy w książce na temat asynchronicznych żądań. Więcej poczytamy o systemach zarządzania treścią, programowaniu aplikacji sieciowych, czy sposobach zwiększenia wydajności witryn internetowych. Jednak w dalszym ciągu będą to ogólniki sugerujące jedynie kierunek naszych dalszych poszukiwań.</p>
<p class="info">OSTATECZNA OCENA: 3/5</p>
<ul>
<li><strong>Autorzy: Schmitt Christopher , Blessing Kimberly , Cherny Rob , Evans Meryl K. , Lawver Kevin , Trammell Mark</strong></li>
<p>David Schultz, Craig Cook</p>
<li>Tytuł oryginału: Adapting to Web Standards: CSS and Ajax for Big Sites (Voices That Matter)</li>
<li>Tłumaczenie: Robert Górczyński</li>
<li>ISBN: 978-83-246-1755-5</li>
<li>Format: 168&#215;237, 304 strony</li>
<li>Data wydania: 11/2008 (<a href="http://helion.pl">Helion</a>)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2010/06/15/css-i-ajax-strony-www-zgodne-ze-standardami-sieciowymi-w3c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML, XHTML i CSS. Nowoczesne tworzenie stron WWW</title>
		<link>http://adamczuk.net.pl/2010/05/17/html-xhtml-i-css-nowoczesne-tworzenie-stron-www/</link>
		<comments>http://adamczuk.net.pl/2010/05/17/html-xhtml-i-css-nowoczesne-tworzenie-stron-www/#comments</comments>
		<pubDate>Mon, 17 May 2010 10:46:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Książki]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=280</guid>
		<description><![CDATA[Recenzja książki, która pozwoli początkującym na zrozumienie nowoczesnego podejścia do tworzenia stron internetowych.]]></description>
			<content:encoded><![CDATA[<p><a href="http://adamczuk.net.pl/wp-content/uploads/2010/05/html_xhtml_css.jpg"><img src="http://adamczuk.net.pl/wp-content/uploads/2010/05/html_xhtml_css.jpg" alt="Nowoczesne tworzenie stron www" title="html_xhtml_css" width="140" height="200" class="left size-full wp-image-281" /></a>Wiele osób rozpoczyna swoją przygodę ze stronami internetowymi od poszukiwań materiałów w internecie. Często zdarza się tak, że informację jakie wpadają w ich ręce są przestarzałe, a w najlepszym przypadku nieaktualne. Jeśli kogoś interesuje kurs tworzenia stron dla początkujących to osobiście polecam <a href="http://kurs.browsehappy.pl/">kurs</a> BrowseHappy. Napisano również wiele książek, które rzeczowo tłumaczą i pokazują proces tworzenia stron internetowych. Recenzowana pozycja w prosty i przejrzysty sposób opisuje nowoczesne tworzenie i standardy sieciowe.<span id="more-280"></span></p>
<p><em>&#8220;HTML, XHTML i CSS. Nowoczesne tworzenie stron WWW&#8221;</em> to kompletny podręcznik dotyczący tworzenia stron internetowych oraz specyfikacja najpopularniejszych technologii internetowych. Autorzy skupili się na wyjaśnieniu różnic w strukturze dokumentów HTML i XHTML, a także szczegółowo omówili ich specyfikacje. Książka dokładnie pokazuje sposób definiowania metadanych i wstawiania poszczególnych elementów na stronie. Przykłady zawarte w kolejnych rozdziałach prezentują budowanie i używanie tabel, formularzy, obrazów oraz pozostałych najpopularniejszych znaczników.</p>
<p>Autorzy szczególny nacisk położyli na zrozumienie standardów sieciowych, których zrozumienie jest podstawą do prawidłowego tworzenia strona internetowych. Idea rozdzielenia części prezentacyjnej i treści pokazuje zalety nowoczesnego podejścia, a dodatkowe rozdziały dopełniają całości książki. Poza przykładami dotyczącymi HTML/XHTML, autorzy omawiają  JavaScript oraz CSS. Osoby początkujące łatwo zrozumieją wspomniane technologie na przykładowym kodzie. Pozostali mają do dyspozycji aktualne specyfikacje omawianych technologii.</p>
<p>Książka jest bardzo dobrym wprowadzeniem dla osób, które nie zajmowały się nigdy tworzeniem stron internetowych lub robiły to dawno temu. Porzucenie przestarzałych technik jest konieczne. Standardy sieciowe wyznaczają właściwy kurs rozwoju internetu, dlatego wszyscy powinni nim podążać.</p>
<p class="info">OSTATECZNA OCENA: 4.5/5</p>
<ul>
<li><strong>Autorzy: David Schultz, Craig Cook</strong></li>
<li>Tytuł oryginału: Beginning HTML with CSS and XHTML: Modern Guide and Reference</li>
<li>Tłumaczenie: Rafał Jońca</li>
<li>ISBN: 978-83-246-1498-1</li>
<li>Format: 158&#215;235, 384 strony</li>
<li>Data wydania: 05/2008 (<a href="http://helion.pl">Helion</a>)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2010/05/17/html-xhtml-i-css-nowoczesne-tworzenie-stron-www/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kolorowanie wierszy i kolumn w tabeli</title>
		<link>http://adamczuk.net.pl/2009/12/16/kolorowanie-wierszy-i-kolumn-w-tabeli/</link>
		<comments>http://adamczuk.net.pl/2009/12/16/kolorowanie-wierszy-i-kolumn-w-tabeli/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 20:49:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[selectors]]></category>
		<category><![CDATA[table]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=236</guid>
		<description><![CDATA[Nowoczesny sposób na kolorowanie wierszy i kolumn w tabeli z wykorzystaniem selektorów potomka.]]></description>
			<content:encoded><![CDATA[<p><img src="http://adamczuk.net.pl/wp-content/uploads/2009/12/zebra-striping.jpg" alt="zebra-striping" title="zebra-striping" width="300" height="100" class="left size-full wp-image-237" /> Tabele to jedne z najpopularniejszych elementów jakie występują na stronach internetowych. Rozbudowana struktura tabel pozwala na osiągnięcie wspaniałych efektów poprzez zastosowanie stylów kaskadowych.<br />
<span id="more-236"></span></p>
<p>Przykłady stylizacji tabel zostały w 2006 roku zebrane przez niezawodny <a href="http://www.smashingmagazine.com/2006/12/29/css-based-tables-modern-solutions/">Smashing Magazine</a>. Czas w sieci upływa bardzo szybko, wiele z tych przykładów, jeśli nie wszystkie to przykłady przestarzałe. Jednak ten sam Smashing Magazine w nowszym artykule prezentuje naprawdę atrakcyjne <a href="http://www.smashingmagazine.com/2008/08/13/top-10-css-table-designs/">przykłady</a>. Niestety wygląd to nie wszystko.</p>
<h3>Problem</h3>
<p>Wielokrotnie zdarza się, że za ciekawym wyglądem tabeli kryje się nadmierna liczba klas, które dotyczą poszczególnych elementów. Podstawowa struktura tabeli składa się z trzech znaczników <code>&lt;table&gt;</code>, <code>&lt;tr&gt;</code> oraz <code>&lt;td&gt;</code>, które tworzą odpowiedni element tabeli, wiersze i poszczególne komórki.</p>
<p>Taka struktura nie pozwala na zbyt wiele, ponieważ odniesienie się do elementów poprzez selektory kontekstu jest wręcz niemożliwa. Jedyne dostępne rozwiązanie to wykorzystanie atrybutów <code>&lt;class&gt;</code> i selektorów klas.</p>
<p>Kolorowanie wierszy i kolumn wymaga użycia atrybutu <code>&lt;class&gt;</code> dla każdej komórki. Kolorowanie samych wierszy uzyskamy poprzez atrybuty<code>&lt;class&gt;</code> dla poszczególnych znaczników <code>&lt;tr&gt;</code>. Poniższe style określają kolor tła dla nieparzystego i parzystego wiersza oraz nieparzystej i parzystej kolumny.</p>
<pre><code>.odd-row {
	background: #eee;
}
.even-row {
	background: #ccc;
}
.odd-column {
	background: #fcc;
}
.even-column {
	background: #f44;
}</code></pre>
<p>Zamierzony efekt zostanie osiągnięty, ale kod naszej tabeli stanie się mniej czytelny, zarówno dla wyszukiwarek, jak i dla ludzie. Istnieje dobra alternatywa dla powyższego rozwiązania.</p>
<h3>Rozwiązanie pośrednie</h3>
<p>Konieczne zmiany dotyczą kodu tabeli. Struktura tabeli udostępnia elementy grupujące wiersze oraz kolumny. Znaczniki <code>&lt;thead&gt;</code>, <code>&lt;tbody&gt;</code> oraz <code>&lt;tfoot&gt;</code> grupują odpowiednio wiersze nagłówka, danych i stopki.</p>
<p>Analogiczne przeznaczenie ma znacznik <code>&lt;colgroup&gt;</code>, który obejmuje poszczególne kolumny tabeli, zdefiniowane przez znaczniki <code>&lt;col&gt;</code>.</p>
<p>Ważne jest zrozumienie kolejności wyświetlania warstw, które tworzą strukturę tabeli. Szczegółowy <a href="http://www.456bereastreet.com/archive/200410/bring_on_the_tables/">artykuł</a> na ten temat napisał Roger Johansson.</p>
<p>Zmodyfikowana struktura pozwala na użycie analogicznych stylów w arkuszu, jednak zamiast selektorów klasy korzystamy z selektorów kontekstu.</p>
<h3>Nowoczesne podejście</h3>
<p>Selektory potomka oferowane przez CSS3 umożliwiają jeszcze dokładniejsze odwołanie się do elementów w strukturze dokumentu. Niestety Internet Explorer <a href="http://adamczuk.net.pl/2009/01/08/obsluga-selektorow-css3-przez-przegladarki/">nie obsługuje</a> selektora potomka, co jest sporym mankamentem tego rozwiązania.</p>
<pre><code>col:nth-child(odd) {
	background: #faa;
}
col:nth-child(even) {
	background: #f44;
}
tbody tr:nth-child(odd) {
	background: transparent url(img/grey-10-transparent.png) 0 0 repeat;
}
tbody tr:nth-child(even) {
	background: transparent url(img/grey-50-transparent.png) 0 0 repeat;
}</code></pre>
<p>Właściwe dobranie kolorów tła oraz obrazów pozwala na uzyskanie właściwego kolorowania wierszy i kolumn. Wygląd <a href="http://adamczuk.net.pl/-/multiple-zebra-striping/">tabeli</a> jest dokładnie taki, jak oczekiwaliśmy. Dodatkowa zaleta tego podejścia to struktura tabeli wolna od zbędnych atrybutów <code>&lt;class&gt;</code>. </p>
<h3>Podsumowanie</h3>
<p>Przedstawione przykłady różnią się sposobem w jaki uzyskano efekt końcowy. Czytelniejsza struktura i lżejszy kod to wielka zaleta. Podobnych rozwiązań istnieje wiele, jednak nie stosuje się ich powszechnie z powodu braku wsparcia po stronie Internet Explorera.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2009/12/16/kolorowanie-wierszy-i-kolumn-w-tabeli/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS według Erica Meyera. Kolejna odsłona</title>
		<link>http://adamczuk.net.pl/2009/11/30/css-wedlug-erica-meyera-kolejna-odslona/</link>
		<comments>http://adamczuk.net.pl/2009/11/30/css-wedlug-erica-meyera-kolejna-odslona/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 22:13:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Książki]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[eric]]></category>
		<category><![CDATA[meyer]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=230</guid>
		<description><![CDATA[Arkusze stylów kaskadowych powinny być używane przez koderów WWW, nawet w przypadku tworzenia prostych stron HTML. Zalety jakie niesie technologia CSS są po prostu nie do ocenienia. Lżejszy kod, rozdzielenie warstwy logicznej i prezentacyjnej, a także zgodność ze standardami. Wszystko to pozwoli nam na uniknięcie kłopotów ze złym wyświetlaniem treści. Niestety nie wszyscy potrafią używać [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://adamczuk.net.pl/wp-content/uploads/2009/11/css_w_erica_meyera_odslona.jpg" alt="css_w_erica_meyera_odslona" title="css_w_erica_meyera_odslona" width="164" height="200" class="left size-full wp-image-234" />Arkusze stylów kaskadowych powinny być używane przez koderów WWW, nawet w przypadku tworzenia prostych stron <abbr title="HyperText Markup Language">HTML</abbr>. Zalety jakie niesie technologia <abbr title="Cascading Style Sheet">CSS</abbr> są po prostu nie do ocenienia. Lżejszy kod, rozdzielenie warstwy logicznej i prezentacyjnej, a także zgodność ze standardami. Wszystko to pozwoli nam na uniknięcie kłopotów ze złym wyświetlaniem treści. Niestety nie wszyscy potrafią używać arkuszy stylów kaskadowych z ich przeznaczeniem. Jeśli ktoś nie używa <abbr>CSS</abbr> na co dzień może popełniać bardzo proste błędy.<span id="more-230"></span></p>
<p><em>&#8220;CSS według Erica Meyera. Kolejna odsłona&#8221;</em> to kontynuacja pierwszej książki Erica Meyera na temat wykorzystania technologii <abbr>CSS</abbr>. Autor opisał w niej podstawowe właściwości stylów, jak również sposób ich użycia w kodzie strony. Ważne jest, aby konstruować semantyczną strukturę dokumentu, ponieważ nawet z wyłączoną obsługą <abbr>CSS</abbr> nasza strona będzie wyglądać przyzwoicie. Jeżeli zaś użyjemy stylów to mamy pełen dostęp do warstwy prezentacyjnej.</p>
<p>Przykłady przedstawione w książce to dalszym ciągu użyteczne i często spotykane elementy. Mimo dokładnie opisanych czynności i sposobu postępowania, swobodnie możemy zmodyfikować podany <abbr>CSS</abbr>, aby dostosować go do własnych potrzeb. Jeżeli chcemy uczynić nasze aplikacje internetowe lepszymi to pierwszą rzeczą jest zastosowanie arkuszy stylów. Nawet korzystanie z <abbr>CSS</abbr> 2.1 daje programiści wszelkie środki, aby semantycznie tworzyć strony WWW. Używanie tabel do budowania layoutu, stosowanie obrazków imitujących odstępy to przestarzałe techniki. Nowoczesne aplikacje webowe muszą korzystać z właściwych technologii, a jedną z nich jest właśnie <abbr>CSS</abbr>.</p>
<p>Książka bardzo dobrze sprawdzi się jako podręcznik nauki <abbr>CSS</abbr>. Osoby, które chcą zrozumieć zasady działania <abbr>CSS</abbr>, powinny uczyć się od najlepszych. Eric Meyer jest uznanym autorytetem w branży, ponieważ sam jest współtwórcą tej technologii. Potrafi bardzo jasno przedstawić wszystkie zawiłości związane z <abbr>CSS</abbr>, jak również pokazać sposób rozwiązania napotykanych problemów.</p>
<p class="info">OCENA OSTATECZNA: 4/5</p>
<p class="info">OSTATECZNA OCENA: 4/5</p>
<ul>
<li><strong>Autor: <a href="http://meyerweb.com/">Eric A. Meyer</a></strong></li>
<li>Tytuł oryginału: More Eric Meyer on CSS</li>
<li>Tłumaczenie: Wojciech Moch</li>
<li>ISBN: 83-7361-901-1</li>
<li>Format: 205&#215;253, 272 stron</li>
<li>Data wydania: 07/2005 (<a href="http://helion.pl">Helion</a>)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2009/11/30/css-wedlug-erica-meyera-kolejna-odslona/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS. Gotowe rozwiązania</title>
		<link>http://adamczuk.net.pl/2009/10/24/css-gotowe-rozwiazania/</link>
		<comments>http://adamczuk.net.pl/2009/10/24/css-gotowe-rozwiazania/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 13:28:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Książki]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[richard]]></category>
		<category><![CDATA[york]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=219</guid>
		<description><![CDATA[Recenzja książki z gotowymi rozwiązaniami CSS. Szkoda, bo jakość tych rozwiązań jest dyskusyjna.]]></description>
			<content:encoded><![CDATA[<p><img src="http://adamczuk.net.pl/wp-content/uploads/2009/11/css_gotowe_rozw.jpg" alt="css_gotowe_rozw" title="css_gotowe_rozw" width="140" height="200" class="left size-full wp-image-220" />Arkusze stylów kaskadowych służą do wizualizacji aplikacji internetowych. Stosowanie jakiegokolwiek formatowania w kodzie XHTML jest przez standardy sieciowe zabronione. Niestety wielu koderów nadal nie potrafi wykorzystać modelu  blokowego przy tworzeniu semantyczne kodu. Na rynku znajdziemy bardzo wiele książek dotyczących technologii XHTML oraz CSS, które opisują temat od podstaw lub w stopniu bardziej złożonym. Jednak nie wszystkie z nich są warte naszego czasu, a już na pewno nie naszych pieniędzy.<span id="more-219"></span></p>
<p><em>&#8220;CSS. Gotowe rozwiązania&#8221;</em> to książka, która na początku zainteresowała mnie spisem treści. Dziesięć projektów z kodem XHTML i CSS, rozwiązujących jedne z częstszych problemów jakie spotykają programiści stron internetowych potrafi zachęcić. Jednak zawartość merytoryczna książki nie wygląda już tak krystalicznie. Autor proponuje zastąpienie sztuczek starej szkoły, rozdzielenie warstw kodu i prezentacji, ale sam niestety popełnia niewybaczalne błędy.</p>
<p>Początkujący programiści zapewne nie dostrzegą większych błędów w książce, ponieważ nie traktuje ona niczym zaawansowanym. Poza tym początkujący programiści dopiero zdobywają wiedzę i doświadczenie, więc powinni korzystać z poprawnie napisanych źródeł. Kod XHTML jest błędnie skonstruowany, a tym samym w konsekwencji arkusze stylów kaskadowych zawierają nieodpowiednie deklaracje. Nagminne opakowywanie wszystkich elementów przed <code>&lt;div&gt;</code> prowadzi do tworzenia gigantycznej struktury znaczników. Używanie znaczników niezgodnie z ich semantycznym przeznaczeniem, jak również długości nazw klas i identyfikatorów budzą spore zastrzeżenia.</p>
<p>Jednak największym błędem jest stosowanie <acronym title="JavaScript">JS</acronym> do ominięcia błędów przeglądarek. Moim zdaniem są dużo lepsze sposoby, aby zmusić <acronym title="Internet Explorer">IE</acronym> do prawidłowego wyświetlania. Nie chodzi tu bynajmniej o możliwość wyłączenia JS przez użytkownika, bo to robi kilka procent populacji sieciowej, ale najzwyczajniej o to, że JS służy zupełnie do czegoś innego.</p>
<p>Książka miała za zadanie przedstawić sposoby radzenia sobie z problemami aplikacji internetowych, jednak moim zdaniem nie znajdziemy tam zbyt wielu wartościowych informacji. Zaproponowane rozwiązania czasami dają skutek odwrotny od zamierzonego. Przykładowe formatowanie formularzy jest przykładem ingerencji kodera w obszar, którego nigdy nie powinien zmieniać. Stosowanie tabel do tworzenia konstrukcji layoutu, jak również korzystanie z <code>&lt;iframe&gt;</code> jest w dzisiejszych czasach niewybaczalne. Niestety autor nie do końca zna obowiązujące dzisiaj standardy sieciowe. Pewnie z tego, także powodu stosuje najmniej restrykcyjny <code>XHTML 1.0 Transitional</code>.</p>
<p>Zdecydowanie nie polecam tej książki nikomu. Początkujący koderzy nauczą się złych praktyk, związanych z kodem XHTML i arkuszami CSS. Zaawansowanie programiści nie znajdą w tej książce nic wartościowego. Książka mogłaby być o wiele lepsza, ale z powodu ciągłego zainteresowania tworzeniem aplikacji webowych, nadal na rynku wydawane są książki, które nie warto nawet otwierać. Niestety branża WWW nie zmieni się na lepsze, jeśli programiści nie zaczną właściwie stosować standardów sieciowych, a nie zaczną, kiedy będą mogli znaleźć książkę taką jak <em>&#8220;CSS. Gotowe rozwiązania&#8221;</em>.</p>
<p class="info">OSTATECZNA OCENA: 2/5</p>
<ul>
<li><strong>Autor: Richard York</strong>
</li>
<li>Tytuł oryginału: CSS Instant Results
</li>
<li>Tłumaczenie: Łukasz Piwko
</li>
<li>ISBN: 83-246-0574-6
</li>
<li>Format: B5, stron 392
</li>
<li>Data wydania: 11/2006 (<a href="http://helion.pl">Helion</a>)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2009/10/24/css-gotowe-rozwiazania/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stylowanie Lightboxa</title>
		<link>http://adamczuk.net.pl/2009/10/11/stylowanie-lightboxa/</link>
		<comments>http://adamczuk.net.pl/2009/10/11/stylowanie-lightboxa/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 12:48:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[lightbox]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=214</guid>
		<description><![CDATA[Przykładowe zmiany domyślnego wyświetlania obrazów przez skrypt Lightbox.]]></description>
			<content:encoded><![CDATA[<p><img src="http://adamczuk.net.pl/wp-content/uploads/2009/10/lightbox.jpg" alt="lightbox" title="lightbox" width="300" height="100" class="left size-full wp-image-217" />Programiści JS znają na pewno framework <a href="http://www.prototypejs.org/">prototype.js</a> oraz bibliotekę <a href="http://script.aculo.us/">scriptaculous.js</a>, która udostępnia wiele efektów graficznych. Popularne w ostatnich miesiącach otwieranie wszystkiego w <em>overlay&#8217;owych</em> okienkach prowadzi jednak wielokrotnie do przerostu formy nad treścią. Nie wystarczy tylko ściągnąć skrypt z sieci. Prezentowane elementy często wyświetlają się w sposób standardowy, który nie jest dla nich odpowiedni. Możemy to zmienić przy niewielkim wysiłku, a uzyskany efekt na pewno zadowoli naszych klientów i użytkowników. Jednym z pierwszych skryptów działających w ten sposób był lightbox napisany przez <a href="http://www.huddletogether.com/">Lokesha Dhakara</a>.<span id="more-214"></span></p>
<h3>Lightbox 2.02</h3>
<p>Do uruchomienia lightboxa potrzebujemy wspomnianych już plików <em>prototype.js</em> oraz <em>scriptaculous.js</em> oraz dwóch innych. Plik <em>lightbox.js</em> jest właściwym kodem naszego skryptu, a <em>effects.js</em> częścią biblioteki scriptaculous, odpowiedzialną za efekty graficzne. Na stronie autora znajdziemy wszystkie potrzebny pliki, łącznie ze standardowymi stylami <acronym title="Cascading Style Sheet">CSS</acronym> i obrazkami nawigacyjnymi. Należy zwrócić uwagę jaką wersję skryptu ściągamy ze strony.</p>
<p>Lightbox może wyświetlać pojedyncze obrazki lub pewien zbiór obrazków znajdujących się na stronie. Sposób jego uruchomienia jest bardzo prosty i szczegółowo wyjaśniony na stronie projektu, dlatego skupimy się tylko na zmianie sposobu prezentacji oraz ważnych szczegółach technicznych. Poniżej przedstawiony jest przykładowy obrazek z białą ramką szerokości 10 pikseli wyświetlony na czarnym tle z 40% przezroczystością.</p>
<p><img src="/img/art/lightbox-01.jpg" class="art-photo" alt="Standardowy sposób prezentacji" /></p>
<p>Aby to zmienić musimy dokonać edycji pliku <em>lightbox.css</em>. Znajdujemy deklaracje dla naszego tła i zmieniamy co trzeba. W moim pliku definicja dla warstwy <code>#overlay</code> była następująca.</p>
<pre><code>#overlay {

	...

	background-color: #000;

	filter:alpha(opacity=60);

	-moz-opacity: .6;

	opacity: .6;

}</code></pre>
<p>Linijka <code>background-color: #000;</code> odpowiada za kolor tła w czasie prezentacji obrazów. W naszym przypadku jest to kolor czarny. Kolejne 3 linijki definiują nieprzeźroczystość dla Internet Explorera, starszych wersji przeglądarek rodziny Mozilla oraz wszystkich przeglądarek obsługujących poprawnie nieprzeźroczystość rekomendowana przez W3C. Różnica pomiędzy nieprzezroczystością a przezroczystością jest prosta. Jeżeli mamy 20% nieprzezroczystości (opacity) to jej odpowiednikiem jest dokładnie 80% przezroczystości (transparency). Dla niewtajemniczonych, trochę prościej. Jeśli ustawimy dla naszego obrazka <code>opacity: .1;</code> to będzie on praktycznie niewidoczny. W odwrotnej sytuacji, czyli dla wysokiej wartości <code>opacity: .9;</code> nasz obrazek jedynie lekko rozjaśniony. Wartość opacity może być podana bez zera przed przecinkiem, bo jest to skrótowy zapis zgodny z CSS.</p>
<p class="warning">Ostrzegam, że zmiana tych parametrów może nie przynieść oczekiwanego skutku z powodu ustawień przezroczystości w innym miejscu. Mianowicie w pliku <em>lightbox.js</em> może, ale nie musi występować poniższa linijka.</p>
<pre><code>var overlayOpacity = 0.9;	// controls transparency of shadow overlay</code></pre>
<p>Osobiście kiedy używałem lightboxa 2.0 to wykasowałem definicje nieprzezroczystości z warstwy <code>#overlay</code>, ustawiając w stylach jedynie tło. Przezroczystość zmieniałem w pliku <em>lightbox.js</em>.</p>
<p>Bardzo ważnym elementem w lightboxie jest ramka wokół obrazka, której szerokość możemy bardzo szybko zmienić. Wystarczy tylko znaleźć odpowiedni fragment w pliku <em>lightbox.js</em>.</p>
<pre><code>var borderSize = 2;</code></pre>
<p>Rozmiar oczywiście jest w pikselach. Jeżeli zmieniamy szerokość ramki to w stylach musimy również dokonać jednej zmiany, tym razem jednak dopełnienia obrazka.</p>
<pre><code>#imageContainer {

	padding: 2px;

}</code></pre>
<p>Chcemy mieć węższą ramkę to zmieniamy obydwie wartości. W naszym przypadku będzie to <code>2px</code>. Jeżeli chcemy zmienić kolor ramki, która wcale nie jest ramką, a całą warstwą, na której wyświetlamy nasz obrazek musimy znaleźć następujący kod:</p>
<pre><code>#outerImageContainer {

	position: relative;

	<strong>background-color: #AAA;</strong>

	width: 250px;

	height: 250px;

	margin: 0 auto;

}</code></pre>
<p>Jego zmiana spowoduje zmianę koloru warstwy, na której wyświetlany jest obrazek. Nasza warstwa będzie miała kolor <code>#AAA</code>. Teoretycznie możemy dopisać <code>  border: 2px solid #FFF;</code>, ale nie wiem czy jest komukolwiek potrzebne.</p>
<p>Dalszym etapem naszej stylizacji lightboxa będzie pasek rozwijany poniżej samego obrazka. Znajdują się na nim informacje zawarte w atrybucie <em>title</em> naszego linka oraz przycisk Close.</p>
<pre><code>#imageDataContainer {

	font: 10px Verdana, Helvetica, sans-serif;

	<strong>background-color: transparent;</strong>

	margin: 0 auto;

	line-height: 1.4em;

}</code></pre>
<p>Kolor tego paska możemy ustawić dowolnie, w zależności od potrzeby. Jednak w naszym przypadku potrzebujemy, aby pasek był przezroczysty. Przezroczysty pasek może uniemożliwiać odczytanie tekstu. Również obrazek <em>closelabel.gif</em>, który standardowo nie posiada przezroczystości może zaburzać oczekiwany efekt.</p>
<p>Najlepszym rozwiązaniem tej sytuacji jest przygotowanie obrazków z przezroczystym tłem oraz w polskiej wersji językowej, jeśli tylko potrzebujemy. Obrazki <em>loading.gif</em> oraz <em>closelabel.gif</em> znajdują się w katalogu <code>images/</code>, a ścieżki do plików w <em>lightbox.js</em>.</p>
<pre><code>var fileLoadingImage = "images/loading.gif";

var fileBottomNavCloseImage = "images/closelabel.gif";</code></pre>
<p>Mamy do wyboru albo nadpisać te pliki albo zmienić ścieżki w kodzie skryptu. Wygodniejsze jest zmienienie ścieżek, bo zawsze zostaną nam standardowe pliki, na wszelki wypadek.</p>
<p>Ostatnim elementem jest opis zdjęcia wyświetlany na pasku. Musimy zmienić jego kolor na jaśniejszy, aby możliwe było jego odczytanie na ciemnym tle.</p>
<pre><code>#imageData #caption {

	font-weight: bold;

	color: #FFF;

}</code></pre>
<p>Jeżeli dokonaliśmy wszystkich zmian poprawnie to powinniśmy otrzymać efekt podobny do widocznego na zdjęciu poniżej.</p>
<p><img src="/img/art/lightbox-02.jpg" class="art-photo" alt="Zmodyfikowany sposób prezentacji" /></p>
<p>Do pełni szczęścia brakuje nam jeszcze obrazków prevlabel.gif i nextlabel.gif, które potrzebne są do nawigacji w momencie oglądania kilku obrazków. Ich wykonanie nie powinno być trudne, a  ścieżki do tych plików zapisane są w stylach <em>lightbox.css</em>. Powinniśmy jeszcze odsunąć nasze obrazki od brzegu o tyle pikseli, ile ma nasza ramka.</p>
<pre><code>#prevLink {

	left: 2px;

	float: left;

}

#nextLink {

	right: 2px;

	float: right;

}</code></pre>
<p>W przypadku oglądania kilku zdjęć poniżej opisu pojawia się, także tekst mówiący nam o numerze zdjęcia. Zmiany tego tekstu możemy dokonać w pliku <em>lightbox.js</em>.</p>
<pre><code>// if image is part of set display 'Image x of x'

if(imageArray.length &gt; 1){

	Element.show('numberDisplay');

	Element.setInnerHTML( 'numberDisplay', "Zdjęcie " + eval(activeImage + 1) + " z " + imageArray.length);

}</code></pre>
<p>Kolor tekstu siedzi w stylach <em>lightbox.js</em>.</p>
<pre><code>#imageData #numberDisplay {

	display: block;

	clear: left;

	<strong>color: #FFF;</strong>

	padding-bottom: 1.0em;

}</code></pre>
<h3>Podsumowanie</h3>
<p>Jak widać na załączonych obrazkach zmiany w wyglądzie lightboxa mogą być spore, a ich wykonanie wcale nie musi być trudne. Wszystko zależy od naszych potrzeb i chęci. Zmiany przedstawione w artykule dotykają tylko czubka góry lodowej, bo taka stylizacja jest praktycznie nieograniczona. Ważne jest, aby dokładnie zaplanować, co chcemy zmienić i do tego dążyć.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2009/10/11/stylowanie-lightboxa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS Tricks</title>
		<link>http://adamczuk.net.pl/2009/09/21/css-tricks/</link>
		<comments>http://adamczuk.net.pl/2009/09/21/css-tricks/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 12:00:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Serwisy]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[coyier]]></category>
		<category><![CDATA[cris]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=207</guid>
		<description><![CDATA[Krótki opis serwisu CSS Tricks. Chris Coyier na swojej stronie przedstawia wiele ciekawych rozwiązań.]]></description>
			<content:encoded><![CDATA[<p><img src="http://adamczuk.net.pl/wp-content/uploads/2009/09/css-tricks.jpg" alt="css-tricks" title="css-tricks" width="400" height="200" class="left size-full wp-image-210" />Chris Coyier jest prawdziwym pasjonatem stron internetowych. Poza codzienną pracą w agencji projektowej, prowadzi własnego bloga i serwis z poradami dla projektantów. Serwis <a href="http://css-tricks.com/">CSS Tricks</a> jest jedną, z tych stron internetowych, które czytuje regularnie.<br />
<span id="more-207"></span><br />
Pewnym utrudnieniem,  może być to, że wszystkie artykuły są pisane pod angielsku. Jednak takie rozwiązanie zwiększa zasięg strony. Strona CSS Tricks w głównym stopniu skupia się szczegółowym omówieniu właściwości CSS, które są bardzo ważne w codziennej pracy projektanta strona internetowych. Nierzadko Chris porusza tematy semantycznej struktury dokumentu oraz nowoczesne techniki dotyczące JavaSctript.</p>
<p>Chris często omawia ciekawe pomysły zrealizowane przy użyciu biblioteki jQuery. Czasami na stronie znajdziemy porady odnośnie PHP lub Wordpressa. Co jakiś czas publikowane są wyniki ankiet prowadzonych na stronie. Wyniki takich ankiet wiele mówią o ludziach pracujących w branży, ich nawykach i zachowaniach.</p>
<p>Wygląd i układ strony są przejrzyste. Wszystkie odnośniki i informacje spełniają swoje zadanie. Problemy omawiane przez Chrisa są często ilustrowane, aby dokładnie zrozumieć istotę problemu i jego rozwiązania. W ostatnim czasie na stronie pojawiły się screencasty, które wraz z komentarzem autora, dokładnie pokazują krok po kroku sposób uzyskania efektu omawianego w artykule.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2009/09/21/css-tricks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS według Erica Meyera. Sztuka projektowania stron WWW</title>
		<link>http://adamczuk.net.pl/2009/08/15/css-wedlug-erica-meyera-sztuka-projektowania-stron-www/</link>
		<comments>http://adamczuk.net.pl/2009/08/15/css-wedlug-erica-meyera-sztuka-projektowania-stron-www/#comments</comments>
		<pubDate>Sat, 15 Aug 2009 11:37:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Książki]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[eric]]></category>
		<category><![CDATA[helion]]></category>
		<category><![CDATA[meyer]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=204</guid>
		<description><![CDATA[Recenzja książki Erica Meyera o sztuce tworzenia stron internetowych.]]></description>
			<content:encoded><![CDATA[<p><img src="http://adamczuk.net.pl/wp-content/uploads/2009/11/css_w_erica_meyera.jpg" alt="css_w_erica_meyera" title="css_w_erica_meyera" class="left size-full wp-image-205" />Arkusze stylów kaskadowych zostały stworzone przez ekspertów <acronym title="World Wide Web Consortium">W3C</acronym> w jednym celu. Standaryzacja aplikacji internetowych była konieczna, a technologia CSS pozwoliła na separację kodu i wyświetlania. Przestarzały HTML, który zawierał atrybuty związane z formatowaniem został z czasem zastąpiony przez semantyczny język XHTML. Rola wizualizacji została przekazana na barki CSS. Aplikacje internetowe stworzone według standardów sieciowych mogą wyglądać identycznie lub prawie tak samo we wszystkich nowoczesnych przeglądarkach, ale to niejedyne cechy technologii CSS.</p>
<p><span id="more-204"></span></p>
<p><em>&#8220;CSS według Erica Meyera. Sztuka projektowania stron WWW&#8221;</em> to książka, która pozwoli poznać zasady prawidłowego budowania stron internetowych z wykorzystaniem stylów kaskadowych. Zrozumienie podstawowych zasad modelu blokowego pozwoli projektantom uzyskać oczekiwane efekty bez skomplikowanych sztuczek. Stąd tylko kilka kroków do rozwinięcia skrzydeł naszej wyobraźni. Dzięki kolejnym projektom, autor od początku do końca opisuje sposób realizacji układu wielokolumnowego lub pozycjonowania warstw. Wraz ze wzrostem naszych umiejętności tworzymy zaawansowane formularze, stylizowane hiperłącza lub dzienniki internetowe. Każdy projekt zawiera również propozycje dalszych modyfikacji, abyśmy bez przeszkód mogli stosować CSS w procesie tworzenia stron WWW.</p>
<p>Książka jest bardzo dobrym podręcznikiem dla początkujących projektantów. Przedstawione projekty są przykładami rzeczywistych aplikacji znanych z sieci. Eric Meyer jako jeden z twórców standardów sieciowych bardzo przejrzyście opisał zastosowanie CSS. Jeśli tego byłoby nam mało to w kolejnej odsłonie autor zawarł następne projekty.</p>
<p class="info">OSTATECZNA OCENA: 4/5</p>
<ul>
<li><strong>Autor: <a href="http://meyerweb.com/">Eric A. Meyer</a></strong></li>
<li>Tytuł oryginału: Eric Meyer on CSS. Mastering the Language of Web Design</li>
<li>Tłumaczenie: Andrzej Badowski, Wojciech Grobel, Joanna Sugiero</li>
<li>ISBN: 83-7361-709-4</li>
<li>Format: 205&#215;253, stron: 312</li>
<li>Data wydania: 02/2005 (<a href="http://helion.pl">Helion</a>)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2009/08/15/css-wedlug-erica-meyera-sztuka-projektowania-stron-www/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tabele i style kaskadowe</title>
		<link>http://adamczuk.net.pl/2009/07/07/tabele-i-style-kaskadowe/</link>
		<comments>http://adamczuk.net.pl/2009/07/07/tabele-i-style-kaskadowe/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 19:26:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[selectors]]></category>
		<category><![CDATA[striping]]></category>
		<category><![CDATA[table]]></category>
		<category><![CDATA[zebra]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=201</guid>
		<description><![CDATA[Prosta, szybka i nowoczesna zmiana wyglądu tabeli]]></description>
			<content:encoded><![CDATA[<p>Tabela jest jednym z podstawowych elementów HTML, a przeznaczeniem tabeli jest prezentacja danych tebelarycznych. Przed laty dzięki swoim właściwościom tabele były wykorzystywane na wiele różnych, niekoniecznie właściwych sposobów. Obecne technologie pozwalają na zmienienie wyglądu tabeli bardzo prosto i szybko, jednocześnie zachowując minimalną ilość znaczników, zamiast wiele klas.</p>
<p>Uzyskanie takich efektów umożliwia CSS3, który jest poprawnie obsługiwany przez nowoczesne przeglądarki. Trudno mówić o komercyjnym zastosowaniu takiego rozwiązania, kiedy Internet Explorer 8 <a href="http://adamczuk.net.pl/2009/01/08/obsluga-selektorow-css3-przez-przegladarki/">odmawia</a> poprawnej interpretacji wielu selektorów CSS3, w tym bardzo użytecznych selektorów potomka. Jednak praktycznie zapoznanie się z nowymi możliwościami CSS3, pozwoli na ich stosowanie chociażby w niekomercyjnych projektach lub własnych zastosowaniach.</p>
<p><span id="more-201"></span></p>
<h3>Wprowadzenie</h3>
<p>Pierwszym krokiem jest stworzenie struktury tabeli. Danymi źródłowymi były wartości indeksów na GPW, zaczerpnięte z serwisu <a href="http://gielda.wp.pl/POD,20,a,1,b,2,c,3,notowania.html">finansowego</a> Wirtualnej Polski. Jakie było moje zdziwienie, gdy kod dwukolorowej tabeli z kilkowa wierszami zawierał ponad 3000 znaków. Jednak takie są skutki formatowania danych w kodzie HTML, a także błędne wykorzystanie dostępnych technologii.</p>
<p>Minimalna struktura tabeli to znaczniki <code>&lt;table&gt;</code>, <code>&lt;tr&gt;</code> oraz <code>&lt;td&gt;</code>. Elementy te odpowiadają za tworzenie całej tabeli, kolejnych wierszy i poszczególnych komórek. W dalszej kolejności możemy dołączyć <code>&lt;thead&gt;</code>, <code>&lt;tbody&gt;</code>, a także <code>&lt;tfoot&gt;</code>, które dzielą całość tabeli na poszczególne sekcje: nagłówek, zawartość oraz stopkę. Wielu programistów zapomina o opisie tabeli, który zamieszczamy w tagu <code>&lt;caption&gt;</code>. Szczegółowe informacje na temat struktury tabeli w XHTML przedstawia <a href="http://www.w3.org/TR/2004/WD-xhtml2-20040722/mod-tables.html">specyfikacja</a> na stronie W3C.</p>
<p>Poniżej został przedstwiony skrócony kod tabeli, jaka była użyta w tym artykule.</p>
<pre><code>&lt;table&gt;
    &lt;caption&gt;Indeksy (WIG20 bez opóźnień)&lt;/caption&gt;
    &lt;thead&gt;
        &lt;tr&gt;
            &lt;th rowspan="2"&gt;czas&lt;/th&gt;
            &lt;th rowspan="2"&gt;nazwa&lt;/th&gt;
            &lt;th colspan="2"&gt;wartość [pkt]&lt;/th&gt;
            &lt;th colspan="2"&gt;zmiana&lt;/th&gt;
            &lt;th colspan="3"&gt;wartość [pkt]&lt;/th&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;th&gt;bieżąca&lt;/th&gt;
            &lt;th&gt;odniesienia&lt;/th&gt;
            &lt;th&gt;[pkt]&lt;/th&gt;
            &lt;th&gt;[%]&lt;/th&gt;
            &lt;th&gt;otwarcia&lt;/th&gt;
            &lt;th&gt;min&lt;/th&gt;
            &lt;th&gt;max&lt;/th&gt;
        &lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;16:40&lt;/td&gt;
            &lt;td&gt;WIG20&lt;/td&gt;
            &lt;td&gt;1 810,38&lt;/td&gt;
            &lt;td&gt;1 810,97&lt;/td&gt;
            &lt;td&gt;-0,59&lt;/td&gt;
            &lt;td&gt;-0,03&lt;/td&gt;
            &lt;td&gt;1 824,07&lt;/td&gt;
            &lt;td&gt;1 803,29&lt;/td&gt;
            &lt;td&gt;1 837,98&lt;/td&gt;
        &lt;/tr&gt;
        ...
    &lt;/tbody&gt;
&lt;/table&gt;</code></pre>
<p>Najważniejsza zaleta tabeli to czytelność danych, które są grupowane wierszami, kolumnami lub wierszami i kolumnami. Niestety zbyt małe odstępy między komórkami niekorzystnie wpływają na szukanie danych oraz ich porównywanie, co przedstawia pierwszy <a href="http://adamczuk.net.pl/-/modern-table/example-1.html">przykład</a>.</p>
<h3>Wersja podstawowa</h3>
<p>Selektory potomka dostępne w CSS3 odnoszą się do odpowiednich elementów potomnych danego rodzica. Tabela to powtarzający się zbiór określonych znaczników, a zatem idealnie nadaje się do zademonstrowania wspomnianych selektorów strukturalnych.</p>
<p>Najpierw zajmiemy się ustawieniem podstawowych właściwości dla naszej tabeli, jak tło, odstępy rozmiar czcionki dla wszystkich komórek.</p>
<pre><code>table {
    background: #aaa;
    font-family: sans-serif;
    font-size: 12px;
    border-spacing: 1px;
}</code></pre>
<p>Dotychczasowym sposobem na uzyskanie kolorowania wierszy w tabelach było stosowanie atrybutu <em>class</em> dla elementu <code>&lt;tr&gt;</code>. jeszcze trudniejsze było kolorowanie kolumn, które wymagało takiego zabiegu przy każdej komórce <code>&lt;td&gt;</code>. Jednak CSS3 pozwala na szybkie odnalezienie dowolnego elementu w strukurze DOM, pod warunkiem, że znamy jego rodzica.</p>
<p>Odnalezienie nieparzystych wierszy tabeli i ustawienie koloru tła umożliwia następujący selektor <code>tr:nth-child(2n+1)</code>. Możliwy jest, także bardziej ludzki zapis, czyli <code>tr:nth-child(odd)</code>.</p>
<pre><code>table tr:nth-child(odd) td {
    background: #eee;
}</code></pre>
<p>Analogicznie postępujemy w przypadku parzystych wierszy, do których zastosujemy selektor <code>tr:nth-child(2n)</code> lub <code>tr:nth-child(even)</code>.</p>
<pre><code>table tr:nth-child(even) td {
    background: #ccc;
}</code></pre>
<p>Kolejne reguły ustawiają kolor tła nagłówka, odstępy kolor czcionki. Informacje przedstawione w całej tabeli zostały wyrównane do prawej, pownieważ większość z kolumn zawiera dane liczbowe. Dwie pierwsze kolumny zostały wyrównane do lewej, dzięki selektorom potomka ustawionym dla komórek <code>td:nth-child(1)</code> i <code>td:nth-child(2)</code>.</p>
<pre><code>table th {
    background: #000;
    padding: 5px 10px;
    color: #fff;
}
table td {
    padding: 3px 5px;
    text-align: right;
}
td:nth-child(1),
td:nth-child(2) {
    text-align: left;
}</code></pre>
<p>Kilkanaście linijek kodu CSS zmienia znacząco wygląd naszej tabeli, co pokazuje <a href="http://adamczuk.net.pl/-/modern-table/example-2.html">kolejny</a> przykład. To nie koniec możliwości jakie oferuje CSS w przypadku stylowania tabel.</p>
<p>Możliwe jest ustawienie określonych właściwości dla poszczególnych kolumn, tak jak to miało miejsce w przypadku wyrównania zawartości pierwszej i drugiej kolumny. Bardzo przydatny jest opis tabeli umieszczony w znaczniku <code>&lt;caption&gt;</code>, który bez przeszkód modyfikujemy w stylach kaskadowych.</p>
<p>Jeśli szerokość naszej tabeli jest zbyt mała i chcemy zwiększyć jej rozmiar to z pomocą przychodzą następujące reguły:</p>
<pre><code>table {
    width: 100%;
    max-width: 1024px;
}</code></pre>
<p>Dzięki tym właściowościom nasza tabela dostosuje się do szerokości strony lub elementu, w którym jest umieszczona, nie przekraczając przy tym 1024 pikseli. W przypadku osadzenia tabeli w elemencie o zadanej szerokości, druga właściowość jest zbędna.</p>
<h3>Podsumowanie</h3>
<p>Dalsze możliwości stylizacji przykładowej tabeli są równie łatwe, dzięki zastosowaniu nowych selektorów. Wszystko zależy od naszych potrzeb i wyobraźni. Przeglądarki, które obsługują selektory CSS3 to Firefox 3.1+, Opera 9+, Safari 3+ oraz Chrome. Istnieje częściowe wsparcie dla wymienionych selektorów w przeglądarkach Internet Explorer, jednak nawet IE8 nie obsługuje sporej ich części.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2009/07/07/tabele-i-style-kaskadowe/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
