Kategorie
CSS

Bardziej użyteczne linki

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ę 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.

Roger wykorzystał nie tylko pseudo-elementy, ale także zaawansowane selektory. Selektor atrybutu a[href="val"] należy do CSS 2.1, a selektor a[href$="val"] to element dostępny w wersji CSS3.

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.

Wersja podstawowa

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 target, a właśnie selektor atrybutu pozwala na łatwe ich stylowanie.

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";
}

Powyższy kod jest zmodyfikowanym przykładem z artykułu Rogera. Dla wszystkich linków z atrybutem target 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.

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.

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.

a[href$="pdf"]:after {
	margin: 0 0 0 5px;
	content: " (PDF)";
	color: #999;
}

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ć.

Przygotowanie takiego zestawu nie powinno sprawić żadnych problemów, a dla zainteresowanych zamieszczam przykład wersji podstawowej dla najpowszechniejszych plików.

Wersja rozszerzona

Dla osób o większych wymaganiach estetycznych mogę zaproponować ikonki w wymiarach 16×16 pikseli zamiast tekstu z typem pliku. Łatwo tego dokonać poprzez zmianę reguł dla konkretnych typów plików.

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ść content może go rozciągnąć. W związku, z tym dajemy pustą zawartość oraz dopełnienie z prawej strony, równe szerokości obrazka.

a[href$=".pdf"]:before {
	margin: 0 5px 0 0;
	background: url(img/pdf.png) center center no-repeat;
	content: "";
	padding-right: 16px;
}

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.

Innym sposobem jest zapisanie samej ikony w pliku CSS poprzez ciąg base64. Plusem tej metody jest zapisanie wszystkich obrazków w jednym pliku CSS. Minus to konieczność tworzenia takiego ciągu dla każdej ikony oddzielnie.

a[href$=".pdf"]:before {
	...
	background: url(data:image/png; base64,<base64 STRING>") center center no-repeat;
	...
}

Na koniec pozostaje nam jeszcze zapisanie wybranych styli jako user-css. Przykładowo Firefox3, którego używam posiada katalog chrome i tam właśnie zapisane są style użytkownika w pliku userContent.css.

Podsumowanie

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.

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ć przykład stylowania linków w wersji rozszerzonej.