chevron-left chevron-right

Piotr Nalepa Frontend, architektura i AI

[CSS] Jak zrobić kolorowe zaznaczenie tekstu?

Ta wersja
blog.piotrnalepa.pl/2010/12/30/css-jak-zrobic-kolorowe-zaznaczenie-tekstu
Opublikowano
Autor
, Staff Software Engineer
Kategoria
CSS
Uwagi
Napisz do mnie · Napisz na X

Ten wpis ma 15 lat. Od tego czasu przeglądarki i narzędzia mogły się zmienić, więc zanim użyjesz kodu, sprawdź go z aktualną dokumentacją.

Po dłuższej przerwie postanowiłem napisać nowy artykuł związany z arkuszami stylów CSS.
Bardzo możliwe, że kiedyś spotkałeś/aś się na stronie WWW z dość nietypowym sposobem zaznaczania tekstu, który zamiast domyślnego koloru zaznaczenia miał jakiś inny.
W tym artykule dowiesz się jak to można zrobić.

Najpierw musimy określić dla jakiego elementu strony ma występować to efektowne podkreślenie. Dla naszego ćwiczenia takie zaznaczenie będzie odnosiło się do nastepującej struktury strony:

Przykład 1HTML
<p id="niebieski">Róży a Pan świata wie, że spudłuje. szarak, gracz nie zdradzić swego roztargnienia: Prawda - smyk w powiecie. Lubił bardzo dobitnie malował.
</p><p id="czerwony">Nawet stary Dąbrowskiego usłyszeć mazurek. biegał po wolności wykwita. Tylko smutno, że zbyt wykwintny na złość Rejentowi, Że ją witali.
</p>

Jak widać, to nie jest nic skomplikowanego. Teraz pora na odpowiednie style CSS, które nadadzą trochę magii naszej stronie:

Przykład 2CSS
#czerwony::selection {
	background: red;
	color: #fff;
}
#czerwony::-moz-selection {
	background: red;
	color: #fff;
}
#niebieski::selection {
	background: blue;
	color: #fff;
}
#niebieski::-moz-selection {
	background: blue;
	color: #fff;
}

Patrząc na powyższy kawałek kodu widać, że wykorzystaliśmy pseudoklasę selection oraz jej odpowiednika dla przeglądarki Mozilla Firefox -moze-selection.
Widać też, że kawałki kodu się powtarzają. Niestety nie da się tego uniknąć i zapisać #niebieski::selection, #niebieski::-moz-selection w jednej linii, a to dlatego, że wtedy efekt nie będzie działał w przeglądarce Firefox.
Efekt będzie działał w przeglądarkach Mozilla Firefox, Opera, Google Chrome, Safari oraz w Internet Explorer 9.
W starszych wersjach Internet Explorera efekt nie zadziała.
Lecz muszę stwierdzić, że nowa wersja IE jest przeglądarką z którą w końcu będzie można dobrze pracować przy budowaniu stron WWW.
Jeśli jesteś fanem/fanką Internet Explorera to polecam Ci zainstalowanie jej najnowszej wersji i nie zrażaj się tym, że jest to wersja beta (można ją zainstalować w systemach Windows Vista i nowszych).

Demo z powyższego przykładu można zobaczyć pod tym linkiem: kolorowe zaznaczenie tekstu w CSS

Udostępnij
Uwagi

O autorze

Staff Software Engineer

Piszę na tym blogu od 2009 roku, a strony i aplikacje webowe tworzę zawodowo od 14 lat. Obecnie w Bishop Fox prowadzę frontend platformy Cosmos, od samego początku projektu. Wcześniej pracowałem m.in. w OLX, KUDO, Auto1 i eZ Systems. Piszę tu o tym, czego nauczyłem się w praktyce: o JavaScripcie, TypeScripcie, Reakcie, CSS-ie i architekturze frontendu. Występowałem też jako prelegent na konferencjach w Polsce i Europie. Masz pytanie albo pomysł na wpis? Daj znać!