<?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; XHTML</title>
	<atom:link href="http://adamczuk.net.pl/tag/xhtml/feed/" rel="self" type="application/rss+xml" />
	<link>http://adamczuk.net.pl</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 06 Feb 2012 20:33:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<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>Smashing Magazine</title>
		<link>http://adamczuk.net.pl/2010/05/25/smashing-magazine/</link>
		<comments>http://adamczuk.net.pl/2010/05/25/smashing-magazine/#comments</comments>
		<pubDate>Tue, 25 May 2010 17:40:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Serwisy]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[magazine]]></category>
		<category><![CDATA[samshing]]></category>
		<category><![CDATA[sm]]></category>
		<category><![CDATA[web 2.0]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=295</guid>
		<description><![CDATA[Ciekawy portal dla ludzi związanych z tworzeniem stron internetowych.]]></description>
			<content:encoded><![CDATA[<p><a href="http://adamczuk.net.pl/wp-content/uploads/2010/05/sm.jpg"><img src="http://adamczuk.net.pl/wp-content/uploads/2010/05/sm.jpg" alt="smashing magazine" title="sm" width="300" height="100" class="left size-full wp-image-288" /></a>Internet jest kopalnią inspiracji. Codzienne przeglądanie sieci rodzi w nas nowe pomysły, znalezione sztuczki i efekty wykorzystujemy we własnych projektach. Każdy ma w sieci własne źródła, które dają okresowo sprawdza. <a href="http://www.smashingmagazine.com/">Smashing Magazine</a> jest czymś więcej niż tylko serwisem o stronach internetowych i nowych trendach w sieci.<br />
<span id="more-295"></span><br />
Wiele z artykułów prezentowanych na łamach <strong>Smashing Magazine</strong> to kolekcje innych stron, dotyczących danego tematu. Znajdziemy kilka działów dotyczących zarówno, grafiki, projektowania jak i samego programowania. Serwis w głównej części skupia się na dwóch pierwszych dlatego często zamieszcza kolekcje ciekawych stron według określonych kryteriów. Regularnie pojawiają się zbiory darmowych ikon, czy tapet przygotowywanych z okazji różnych wydarzeń.</p>
<p>Smashing Magazine to inspiracje i porady głównie dla grafików i projektantów. Jednak od czasu to czasu pojawiają się artykuły dla programistów. Ciekawe techniki dotyczące CSS, nowoczesne podejście do JavaScript, w tym dedykowane wtyczki dla jQuery. Czasami tworzone są teksty dotyczące <a href="http://wordpress.org/">WordPressa</a>, albo artykuły o programowaniu w PHP. Niestety teksty dotyczące programowania należy traktować ostrożnie.</p>
<p>Autorzy Smashing Magazine aktualizują swój magazyn praktycznie codziennie, zachowując przy tym od początku równy, wysoki poziom treści. Wyznacznikiem wartości tego magazynu niech będą setki tysięcy użytkowników RSS albo wydana przez autorów książka Smashing Book.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2010/05/25/smashing-magazine/feed/</wfw:commentRss>
		<slash:comments>4</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>2</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>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>4</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[Blogi]]></category>
		<category><![CDATA[CSS]]></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>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>9</slash:comments>
		</item>
	</channel>
</rss>

