Skip to content

Selektory CSS wyjaśnione

Wszystkie typowe selektory CSS pogrupowane według rodzin: podstawowe, kombinatorów, pseudoklasy, pseudoelementy i selektory atrybutów. Każdy wiersz łączy selektor z jednolinijkowym przykładem.

Selektor wskazuje elementy, których dotyczy reguła. Specyficzność decyduje, która reguła wygrywa, gdy pasuje kilka: inline wygrywa z id, id wygrywa z klasą, klasa wygrywa z typem. Czytaj selektory od prawej do lewej: przeglądarka najpierw dopasowuje część najbardziej z prawej, a potem przechodzi w górę po kombinatorach. Rodziny poniżej obejmują prawie wszystko, co napiszesz.

Tabela referencyjna · 53 wpisy
53 of 53 rows
Podstawowe
Każdy element o tej nazwie znacznika.button { }
Elementy z tą klasą..active { }
Jedyny element o tym identyfikatorze.#header { }
Każdy element.* { box-sizing: border-box; }
Korzeń dokumentu; zwykłe miejsce dla globalnych właściwości niestandardowych.:root { --gap: 1rem; }
Elementy dopasowane przez A lub B (grupowanie).h1, h2, h3 { }
Kombinatory
Każdy B będący potomkiem A.nav a { }
B będące bezpośrednim dzieckiem A.ul > li { }
B bezpośrednio po A, ten sam rodzic.h1 + p { }
Każdy B występujący po A, ten sam rodzic.h1 ~ p { }
Pseudoklasy (stan)
Element, gdy kursor znajduje się nad nim.a:hover { }
Element, który ma fokus klawiatury.input:focus { }
Element będący pierwszym dzieckiem swojego rodzica.li:first-child { }
N-te dziecko; przyjmuje wzory takie jak 2n.tr:nth-child(2n) { }
Elementy, które nie pasują do żadnego wewnętrznego selektora; od Selectors 4 przyjmuje listę.li:not(:first-child, .skip) { }
Zaznaczony checkbox, przycisk radiowy lub opcja.input:checked { }
Wyłączone pole lub przycisk.button:disabled { }
Rodzic zawierający dopasowanie wewnętrznego selektora.li:has(ul) { }
Dowolny selektor z listy; specyficzność to najwyższa z listy.:is(ol, ul) li { }
To samo co :is(), ale ze specyficznością zero.:where(ol, ul) li { }
Fokus, który powinien pokazać obwódkę, zwykle z klawiatury.a:focus-visible { }
Element, który sam ma fokus lub ma go jego potomek.form:focus-within { }
Element będący ostatnim dzieckiem swojego rodzica.li:last-child { }
Element bez rodzeństwa.p:only-child { }
N-te rodzeństwo o tym samym znaczniku; przyjmuje wzory takie jak 2n.p:nth-of-type(2n) { }
Pierwsze lub ostatnie rodzeństwo o tym samym znaczniku.p:first-of-type { }
Element bez dzieci i bez tekstu.td:empty { }
Nieodwiedzone i już odwiedzone linki.a:visited { }
Pola oznaczone jako wymagane i pola pozostawione opcjonalne.input:required { }
Pola, których wartość przechodzi lub nie przechodzi reguł walidacji.input:invalid { }
Pole, którego użytkownik nie może edytować.input:read-only { }
Element, którego identyfikator pasuje do fragmentu URL.#note:target { }
Wstępnie wybrana opcja lub domyślny przycisk grupy.input:default { }
Checkbox ustawiony w stan nieokreślony przez skrypt.input:indeterminate { }
Każdy wbudowany element lub element niestandardowy po jego zarejestrowaniu.my-widget:defined { }
Element w podanym języku.p:lang(fr) { }
Pseudoelementy
Wygenerowany węzeł treści przed elementem.label::before { content: ""; }
Wygenerowany węzeł treści po elemencie.code::after { content: ";"; }
Pierwsza litera bloku tekstu.p::first-letter { }
Tekst zastępczy pola.input::placeholder { }
Pierwsza linia bloku tekstu.p::first-line { }
Tekst podświetlony przez użytkownika.::selection { }
Punkt lub numer elementu listy.li::marker { }
Obszar za elementem pełnoekranowym lub dialogiem.dialog::backdrop { }
Przycisk przeglądania wewnątrz pola pliku.input::file-selector-button { }
Część shadow DOM wystawiona przez hosta.my-widget::part(header) { }
Selektory atrybutów
Elementy mające ten atrybut, o dowolnej wartości.[required] { }
Atrybut dokładnie równy val.[type="submit"] { }
Atrybut zaczyna się od val.a[href^="https"] { }
Atrybut kończy się na val.a[href$=".pdf"] { }
Atrybut zawiera val.a[href*="login"] { }
Rozdzielana spacjami lista zawierająca val.[class~="badge"] { }
Wartość równa val lub zaczynająca się od val plus myślnik.[lang|="en"] { }