<?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; user css</title>
	<atom:link href="http://adamczuk.net.pl/tag/user-css/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>Bardziej użyteczne linki</title>
		<link>http://adamczuk.net.pl/2008/12/18/bardziej-uzyteczne-linki/</link>
		<comments>http://adamczuk.net.pl/2008/12/18/bardziej-uzyteczne-linki/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 20:55:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[user css]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=47</guid>
		<description><![CDATA[Po przeczytaniu artykułu Rogera Johanssona postanowiłem rozwinąć pomysł, jaki tam przedstawił. Głównym celem tworzenia arkusza stylów przez użytkownika jest stylizacja linków jakie spotkamy codziennie w sieci. Jednak zastosowanie i możliwości takich styli są dużo większe. Idea Pomysł polega na wykorzystaniu pseudo-klas :before i :after dla oznaczenia rodzaju łącza. Odpowiednia stylizacja linków, które same otwierają się [...]]]></description>
			<content:encoded><![CDATA[<p>Po przeczytaniu <a href="http://www.456bereastreet.com/archive/200812/reveal_new_window_links_and_links_to_non-html_files_with_a_user_stylesheet/">artykułu</a> Rogera Johanssona postanowiłem rozwinąć pomysł, jaki tam przedstawił. Głównym celem tworzenia arkusza stylów przez użytkownika jest stylizacja linków jakie spotkamy codziennie w sieci. Jednak zastosowanie i możliwości takich styli są dużo większe.<span id="more-47"></span></p>
<h3>Idea</h3>
<p>Pomysł polega na wykorzystaniu pseudo-klas <code>:before</code> i <code>:after</code> dla oznaczenia rodzaju łącza. Odpowiednia stylizacja linków, które same otwierają się w nowych oknach, albo linków do dokumentów PDF jest bardzo użyteczna. Nie musimy już kontrolować paska stanu lub zgadywać, co zobaczymy po kliknięciu danego linka.</p>
<p>Roger wykorzystał nie tylko pseudo-elementy, ale także zaawansowane selektory. Selektor atrybutu <code>a[href="val"]</code> należy do <abbr title="Cascading Style Sheet">CSS</abbr> 2.1, a selektor <code>a[href$="val"]</code> to element dostępny w wersji CSS3.</p>
<p>Trzeba przyznać, że nie jest rozwiązanie uniwersalne, które działa we wszystkich przeglądarkach. Wspomniane selektory nie działają w Internet Explorer 6, ale są przeważnie wspierane przez nowoczesne przeglądarki. Należy więc stosować je głównie jako style użytkownika, które będą przechowywane na lokalnym komputerze w katalogu przeglądarki.</p>
<h3>Wersja podstawowa</h3>
<p>Wygląd linków modyfikujemy poprzez dodanie odpowiedniej zawartości na początku lub na końcu linka. Przykładowo linki, które otwierają się w nowych oknach mają atrybut <code>target</code>, a właśnie selektor atrybutu pozwala na łatwe ich stylowanie.</p>
<pre>
<code>a[target="_blank"]:before,
a[target="new"]:before {
	margin: 0 5px 0 0;
	padding: 1px;
	border: 1px solid #444;
	color: #333;
	background: #eee;
	font-family: sans-serif;
	content: "279C";
}</code>
</pre>
<p>Powyższy kod jest zmodyfikowanym przykładem z artykułu Rogera. Dla wszystkich linków z atrybutem <code>target</code> równym _blank lub new będą obowiązywać przedstawione reguły. Oczywiście możemy je dowolnie zmodyfikować, dodając nowe lub usuwając istniejące deklaracje.</p>
<p>Strzałka skierowana w prawo na siwym tle niekoniecznie musi nam się kojarzyć z nowym oknem przeglądarki, ale to od użytkownika zależy w jaki sposób zmieni wygląd linków.</p>
<p>Inny przykładem niech będą bardzo często spotykane w sieci linki do plików PDF, MP3 czy jakichkolwiek innych. Ich stylizacja może będzie niesłychanie prosta dzięki poniższym regułom CSS.</p>
<pre><code>a[href$="pdf"]:after {
	margin: 0 0 0 5px;
	content: " (PDF)";
	color: #999;
}</code></pre>
<p>Umieszczenie napisu z typem pliku, którego linkuje jest bardzo pomocne. Informacja z prawej strony linku jest bardzo czytelna, a dla własnych potrzeb możemy ją zmienić.</p>
<p>Przygotowanie takiego zestawu nie powinno sprawić żadnych problemów, a dla zainteresowanych zamieszczam <a href="http://adamczuk.net.pl/-/more-useful-links/basic-version.html">przykład</a> wersji podstawowej dla najpowszechniejszych plików.</p>
<h3>Wersja rozszerzona</h3>
<p>Dla osób o większych wymaganiach estetycznych mogę zaproponować ikonki w wymiarach 16&#215;16 pikseli zamiast tekstu z typem pliku. Łatwo tego dokonać poprzez zmianę reguł dla konkretnych typów plików.</p>
<p>Ikona dla danego typu plików będzie centralnie pozycjonowana w poziomie i w pionie jako tło. Margines odsuwa obrazek od łącza. Ustawienie szerokości i wysokości dla tego pseudo-elementu nie daje oczekiwanego efektu, ponieważ tylko wartość <code>content</code> może go rozciągnąć. W związku, z tym dajemy pustą zawartość oraz dopełnienie z prawej strony, równe szerokości obrazka.</p>
<pre><code>a[href$=".pdf"]:before {
	margin: 0 5px 0 0;
	background: url(img/pdf.png) center center no-repeat;
	content: "";
	padding-right: 16px;
}</code></pre>
<p>W ten sposób tworzymy style dla innych rodzajów plików. Pozostaje jeszcze kwestia sposobu przechowywania samych ikon dla tych reguł. Najłatwiej jest utworzyć katalog z ikonami, które wykorzystamy w stylach, analogicznie jak to zostało pokazane powyżej.</p>
<p>Innym sposobem jest zapisanie samej ikony w pliku CSS poprzez ciąg <code>base64</code>. Plusem tej metody jest zapisanie wszystkich obrazków w jednym pliku CSS. Minus to konieczność tworzenia takiego ciągu dla każdej ikony oddzielnie.</p>
<pre><code>a[href$=".pdf"]:before {
	...
	background: url(data:image/png; base64,&lt;base64 STRING&gt;") center center no-repeat;
	...
}</code></pre>
<p>Na koniec pozostaje nam jeszcze zapisanie wybranych styli jako <em>user-css</em>. Przykładowo Firefox3, którego używam posiada katalog chrome i tam właśnie zapisane są style użytkownika w pliku <em>userContent.css</em>.</p>
<h3>Podsumowanie</h3>
<p>Użyteczność takiego arkusza styli jest naprawdę duża. Sposób jego utworzenia nie powinien sprawić problemów nawet początkującym użytkownikom sieci, a na pewno oszczędzi wielu niespodzianek podczas klikania linków.</p>
<p>Wybór między informacją w postaci tekstu lub obrazka, jak i samych ikon zależy od osobistych preferencji użytkowników. Na koniec możemy jeszcze zobaczyć <a href="http://adamczuk.net.pl/-/more-useful-links/extended-version.html">przykład</a> stylowania linków w wersji rozszerzonej.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2008/12/18/bardziej-uzyteczne-linki/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

