Selektory#

Przegląd selektorów#

Selektor reprezentuje strukturę. Struktura ta może być używana jako warunek (np. w regule CSS) określający, które elementy w drzewie dokumentu zostaną dopasowane przez selektor, lub jako płaski opis fragmentu HTML lub XML odpowiadający tej strukturze.

Selektory mają postać od prostych nazw elementów aż do bogatych reprezentacji kontekstowych.

Najnowszy moduł selektorów zawiera następującą tabelę (porównaj z Level 3 i CSS 2.1), podsumowującą składnię selektorów oraz ich najważniejsze cechy:

WzorzecReprezentujeSekcja (online)Poziom

Ogólne

Ogólne
*Dowolny element.Universal selector2
EElement E.Type (tag name) selector1
E , FElement E i/lub element F.Selector Lists1
!E > FElement E będący rodzicem elementu F (zmiana tematu).Determining the subject of a selector4

Kombinatory

Kombinatory
E FElement F będący potomkiem elementu F.Descendant combinator1
E > FElement F będący dzieckiem elementu F.Child combinator2
E + FElement F będący bratem następującym elementu F.Next-sibling combinator2
E ~ FElement F będący następnikiem bratowym elementu F.Following-sibling combinator3
E || FElement F będący komórką w elemencie E określającym kolumnę.Grid-Structural pseudo-classes4
E /ref/ FElement F, do którego odwołuje się element E za pomocą atrybutu ref.Reference combinator4

Atrybutowe

Atrybutowe
E#myidElement E z identyfikatorem myid.ID selectors1
E#warningElement E z klasą warning.Class selectors1
E[foo="bar" i]Element E z atrybutem foo o wartości bar (bez względu na wielkość liter ASCII w wartości).Attribute selectors: Case-sensitivity4
E[foo]Element E z atrybutem foo.Attribute selectors2
E[foo="bar"]Element E z atrybutem foo o wartości bar.Attribute selectors2
E[foo~="bar"]Element E z atrybutem foo, którego wartość zawiera słowo bar.Attribute selectors2
E[foo|="en"]Element E z atrybutem foo, którego wartość jest równa en lub zaczyna się od łącznika en-.Attribute selectors2
E[foo^="bar"]Element E z atrybutem foo, którego wartość zaczyna się od bar.Attribute selectors3
E[foo$="bar"]Element E z atrybutem foo, którego wartość kończy się na bar.Attribute selectors3
E[foo*="bar"]Element E z atrybutem foo, którego wartość zawiera bar w dowolnym miejscu.Attribute selectors3

Pseudoklasy

Pseudoklasy

Kombinacji logicznych

E:matches(s1, s2)
Element E, który pasuje do selektora s1 i/lub selektora s2.Matches-any pseudo-class4
E:not(s1, s2)Element E, który nie pasuje do selektora s1 lub selektora s2.Negation pseudo-class3/4

Lingwistyczne

E:dir(ltr)
Element E z kierunkiem tekstu lewo-prawo.Linguistic Pseudo-classes4
E:lang(zh, *-hant)Element E z językiem chińskim (dowolny dialekt lub system zapisu) lub innym składającym się z chińskich znaków.Linguistic Pseudo-classes2/4

Lokalizacji

E:any-link
Element E, który jest hiperłączem (odwiedzonym lub nieodwiedzonym).Location Pseudo-classes4
E:linkElement E, który jest hiperłączem nieodwiedzonym.Location Pseudo-classes1
E:visitedElement E, który jest hiperłączem odwiedzonym.Location Pseudo-classes1
E:local-linkElement E, który jest hiperłączem z identycznym adresem URL, jak w bieżącym dokumencie.Location Pseudo-classes4
E:local-link(0)Element E, który jest hiperłączem z identyczną domeną w adresie URL, jak w bieżącym dokumencie.Location Pseudo-classes4
E:targetElement E, który jest celem w bieżącym adresie URL strony.Location Pseudo-classes3
E:scopeElement E, który został oznaczony jako element referencyjny (istotne przy zawężaniu stylów).Location Pseudo-classes4

Akcji użytkownika

E:hover
Element E, nad którym znajduje się urządzenie wskazujące.The user action pseudo-classes3-UI*/2
E:activeElement E, który został aktywowany.The user action pseudo-classes3-UI*/1
E:focusElement E, który posiada zogniskowanie.The user action pseudo-classes3-UI*/2
E:dropElement E, który jest dowolnym celem upuszczenia.The user action pseudo-classes4
E:drop(active valid)Element E, który jest aktywnym i prawidłowym celem upuszczenia.The user action pseudo-classes4

Stanów kontroli wejścia

E:enabled
Element interfejsu użytkownika E, który jest w stanie odblokowania.Input Control States3-UI*/3
E:disabledElement interfejsu użytkownika E, który jest w stanie zablokowania.Input Control States3-UI*/3
E:read-writeElement interfejsu użytkownika E, który jest w stanie edycji.Input Control States3-UI/4
E:read-onlyElement interfejsu użytkownika E, który jest tylko do odczytu.Input Control States3-UI/4
E:placeholder-shownElement interfejsu użytkownika E, który ma zdefiniowany i pokazuje w danej chwili tekst zastępczy.Input Control States4
E:defaultElement interfejsu użytkownika E, który jest domyślnym spośród zestawu podobnych elementów.Input Control States3-UI/4

Stanów wartości wejścia

E:checked
Element interfejsu użytkownika E, który jest w stanie zaznaczenia.Input Value States3-UI*/3
E:indeterminateElement interfejsu użytkownika E, który jest w stanie nieokreślonym (ani zaznaczony ani odznaczony).Input Value States3-UI*/4

Sprawdzenia wartości wejścia

E:valid
Element interfejsu użytkownika E, który ma poprawną (walidującą) wartość.Input Value-checking3-UI/4
E:invalidElement interfejsu użytkownika E, który nie ma poprawnej (walidującej) wartości.Input Value-checking3-UI/4
E:in-rangeElement interfejsu użytkownika E, którego wartość znajduje się w dopuszczalnym zakresie.Input Value-checking3-UI/4
E:out-of-rangeElement interfejsu użytkownika E, którego wartość nie znajduje się w dopuszczalnym zakresie.Input Value-checking3-UI/4
E:requiredElement interfejsu użytkownika E, w którym podanie wartości jest wymagane.Input Value-checking3-UI/4
E:optionalElement interfejsu użytkownika E, w którym podanie wartości jest opcjonalne.Input Value-checking3-UI/4
E:user-errorElement interfejsu użytkownika E, w którym użytkownik popełnił błąd przy wypełnianiu.Input Value-checking4

Podstawowej struktury

E:root
Element E, który jest korzeniem dokumentu.Tree-Structural pseudo-classes3
E:emptyElement E, który nie ma żadnych dzieci (włącznie z węzłami tekstowymi).Tree-Structural pseudo-classes3
E:blankElement E, który nie ma żadnych dzieci (dopuszczalne są węzły tekstowe z białymi znakami).Tree-Structural pseudo-classes4

Indeksowania dzieci

E:nth-child(n)
Element E, który jest n-tym dzieckiem swego rodzica.Child-indexed Pseudo-classes3
E:nth-last-child(n)Element E, który jest n-tym dzieckiem swego rodzica (od końca).Child-indexed Pseudo-classes3
E:first-childElement E, który jest pierwszym dzieckiem swego rodzica.Child-indexed Pseudo-classes2
E:last-childElement E, który jest ostatnim dzieckiem swego rodzica.Child-indexed Pseudo-classes3
E:only-childElement E, który jest jedynym dzieckiem swego rodzica.Child-indexed Pseudo-classes3

Indeksowania dzieci tego samego typu

E:nth-of-type(n)
Element E, który jest n-tym dzieckiem tego samego typu w swoim rodzicu.Typed Child-indexed Pseudo-classes3
E:nth-lsat-of-type(n)Element E, który jest n-tym dzieckiem tego samego typu w swoim rodzicu (od końca).Typed Child-indexed Pseudo-classes3
E:first-of-typeElement E, który jest pierwszym dzieckiem tego samego typu w swoim rodzicu.Typed Child-indexed Pseudo-classes3
E:last-of-typeElement E, który jest ostatnim dzieckiem tego samego typu w swoim rodzicu.Typed Child-indexed Pseudo-classes3
E:only-of-typeElement E, który jest jedynym dzieckiem tego samego typu w swoim rodzicu.Typed Child-indexed Pseudo-classes3

Indeksowania dzieci wybranego typu

E:nth-match(n of selector)
Element E, który jest n-tym dzieckiem wybranego typu (wskazywanym przez selector) w swoim rodzicu.Selected Child-indexed Pseudo-classes4
E:nth-last-match(n of selector)Element E, który jest n-tym dzieckiem wybranego typu (wskazywanym przez selector) w swoim rodzicu (od końca).Selected Child-indexed Pseudo-classes4

Indeksowania kolumn

E:nth-column(n)
Element E, który jest n-tą kolumną włącznie z zawartymi w niej komórkami.Grid-Structural Selectors4
E:nth-last-column(n)Element E, który jest n-tą kolumną włącznie z zawartymi w niej komórkami (od końca).Grid-Structural Selectors4

Pseudoelementy

Pseudoelementy
E::first-linePierwsza sformatowana linia w elemencie E.Pseudo-elements1
E::first-letterPierwsza sformatowana litera w elemencie E.Pseudo-elements1

Niektóre selektory poziomu 4 (oznaczone powyżej jako "3-UI") zostały pierwszy raz wprowadzone i opisane w specyfikacji "CSS Basic User Interface Module Level 3". Dodatkowa gwiazdka przy oznaczeniu "3-UI*" informuje, że specyfikacja bazowego UI jedynie wymienia ten rodzaj selektora (bez jego opisu).

Specyfikacja "Selectors Level 4" umieszcza opisy selektorów w odpowiednich podrozdziałach, zgodnie z przeznaczeniem danego selektora. Ja postąpię podobnie, tzn. na kolejnych stronach pokrótce opiszę każdą z tych grup i wypiszę przynależące do niej selektory. Dzięki temu uniknę powielania tych samych informacji przy opisach każdego selektora z osobna.

Opisy dla najnowszych wariantów selektorów należy traktować z pewnym dystansem. Są to nowości, których na dzień dzisiejszy nie obsługuje żadna aktualna przeglądarka (zatem brak możliwości wykonania praktycznych testów). W niektórych przypadkach ciężko ustalić pierwotne założenia autorów specyfikacji. Istnieje ryzyko, że niektóre selektory zostały całkowicie źle zdefiniowane albo źle zrozumiane przeze mnie - mam wątpliwości co do działania pseudoklas kolumn oraz prawidłowej interpretacji listy selektorów w niektórych pseudoklasach funkcyjnych. W związku z tym należy spodziewać się jeszcze wielu modyfikacji nowego modułu selektorów jak i tej części kursu. Całość będzie stopniowo weryfikowana w późniejszym czasie.

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

Selektory (H1) Przegląd selektorów (H2) Ogólne (H3) Kombinatory (H3) Atrybutowe (H3) Pseudoklasy (H3) Kombinacji logicznych (H4) Lingwistyczne (H4) Lokalizacji (H4) Akcji użytkownika (H4) Stanów kontroli wejścia (H4) Stanów wartości wejścia (H4) Sprawdzenia wartości wejścia (H4) Podstawowej struktury (H4) Indeksowania dzieci (H4) Indeksowania dzieci tego samego typu (H4) Indeksowania dzieci wybranego typu (H4) Indeksowania kolumn (H4) Pseudoelementy (H3)