CSS
Selektory
Szukaj…
Wprowadzenie
Selektory CSS identyfikują określone elementy HTML jako cele dla stylów CSS. W tym temacie opisano, w jaki sposób selektory CSS są ukierunkowane na elementy HTML. Selektory używają szerokiej gamy ponad 50 metod selekcji oferowanych przez język CSS, w tym elementów, klas, identyfikatorów, pseudoelementów i pseudoklas oraz wzorców.
Składnia
- # id
- . Nazwa klasy
- : pseudo-nazwa klasy
- :: pseudoelement
- [ attr ] / * ma atrybut attr . * /
- [ attr = „ wartość ”] / * ma atrybut attr , a jego wartość to dokładnie „ wartość ”. * /
- [ attr ~ = „ wartość ”] / * ma atrybut attr , a jego wartość, gdy jest podzielona na białe znaki , zawiera „ wartość ”. * /
- [ attr | = „ wartość ”] / * ma atrybut attr , a jego wartość to dokładnie „ wartość ”, lub jego wartość zaczyna się od „ wartość - ”. * /
- [ attr ^ = „ wartość ”] / * ma atrybut attr , a jego wartość zaczyna się od „ wartość ”. * /
- [ attr $ = „ wartość ”] / * ma atrybut attr , a jego wartość kończy się na „ wartość ”. * /
- [ attr * = „ wartość ”] / * ma atrybut attr , a jego wartość zawiera „ wartość ”. * /
- nazwa elementu
- *
Uwagi
- Czasami widać podwójne dwukropkami (
::
) zamiast tylko jednego (:
). Jest to sposób na oddzielenie pseudoklas od pseudoelementów . - Starych przeglądarek, takich jak Internet Explorer 8, obsługuje tylko jeden dwukropek (
:
) do określania pseudo-elementy. - W przeciwieństwie do pseudoklas, tylko jeden pseudoelement może być użyty na selektor, jeśli jest obecny, musi występować po sekwencji prostych selektorów reprezentujących podmioty selektora (przyszła wersja specyfikacji W3C może dopuszczać wiele pseudoelementów na selektor ).
Selektory atrybutów
Przegląd
Selektory atrybutów mogą być używane z różnymi typami operatorów, które odpowiednio zmieniają kryteria wyboru. Wybierają element na podstawie obecności danego atrybutu lub wartości atrybutu.
Selektor (1) | Dopasowany element | Wybiera elementy ... | Wersja CSS |
---|---|---|---|
[attr] | <div attr> | Z atrybutem attr | 2) |
[attr='val'] | <div attr="val"> | Gdzie atrybut attr ma wartość val | 2) |
[attr~='val'] | <div attr="val val2 val3"> | Gdzie val pojawia się w oddzielona spacjami lista attr | 2) |
[attr^='val'] | <div attr="val1 val2"> | Gdzie wartość attr zaczyna się od val | 3) |
[attr$='val'] | <div attr="sth aval"> | Gdzie wartość attr kończy się na val | 3) |
[attr*='val'] | <div attr="somevalhere"> | Gdzie attr zawiera val dowolnym miejscu | 3) |
[attr|='val'] | <div attr="val-sth etc"> | Gdzie wartość attr jest dokładnie val , lub zaczyna się od val i natychmiast a następnie - (U + 002D) | 2) |
[attr='val' i] | <div attr="val"> | Gdzie attr ma wartość val , ignorując obudowę listu val . | 4 (2) |
Uwagi:
Wartość atrybutu może być otoczona pojedynczymi lub podwójnymi cudzysłowami. Żaden cytat może w ogóle nie działać, ale nie jest zgodny ze standardem CSS i jest odradzany.
Nie ma jednej zintegrowanej specyfikacji CSS4, ponieważ jest ona podzielona na osobne moduły. Istnieją jednak moduły „poziomu 4”. Zobacz obsługę przeglądarki .
Detale
[attribute]
Wybiera elementy o podanym atrybucie.
div[data-color] {
color: red;
}
<div data-color="red">This will be red</div>
<div data-color="green">This will be red</div>
<div data-background="red">This will NOT be red</div>
[attribute="value"]
Wybiera elementy o podanym atrybucie i wartości.
div[data-color="red"] {
color: red;
}
<div data-color="red">This will be red</div>
<div data-color="green">This will NOT be red</div>
<div data-color="blue">This will NOT be red</div>
[attribute*="value"]
Wybiera elementy o podanym atrybucie i wartości, w przypadku gdy podany atrybut zawiera podaną wartość w dowolnym miejscu (jako podłańcuch).
[class*="foo"] {
color: red;
}
<div class="foo-123">This will be red</div>
<div class="foo123">This will be red</div>
<div class="bar123foo">This will be red</div>
<div class="barfooo123">This will be red</div>
<div class="barfo0">This will NOT be red</div>
[attribute~="value"]
Wybiera elementy o podanym atrybucie i wartości, w których dana wartość pojawia się na liście oddzielonej spacjami.
[class~="color-red"] {
color: red;
}
<div class="color-red foo-bar the-div">This will be red</div>
<div class="color-blue foo-bar the-div">This will NOT be red</div>
[attribute^="value"]
Wybiera elementy o podanym atrybucie i wartości, od których dany atrybut zaczyna się od wartości.
[class^="foo-"] {
color: red;
}
<div class="foo-123">This will be red</div>
<div class="foo-234">This will be red</div>
<div class="bar-123">This will NOT be red</div>
[attribute$="value"]
Wybiera elementy o podanym atrybucie i wartości, w których dany atrybut kończy się podaną wartością.
[class$="file"] {
color: red;
}
<div class="foobar-file">This will be red</div>
<div class="foobar-file">This will be red</div>
<div class="foobar-input">This will NOT be red</div>
[attribute|="value"]
Wybiera elementy o danym atrybucie i wartości, w których wartość atrybutu jest dokładnie podaną wartością lub jest dokładnie podaną wartością, po której następuje -
(U + 002D)
[lang|="EN"] {
color: red;
}
<div lang="EN-us">This will be red</div>
<div lang="EN-gb">This will be red</div>
<div lang="PT-pt">This will NOT be red</div>
[attribute="value" i]
Wybiera elementy o danym atrybucie i wartości, w których wartość atrybutu może być reprezentowana jako Value
, VALUE
, vAlUe
lub każda inna możliwość bez rozróżniania wielkości liter.
[lang="EN" i] {
color: red;
}
<div lang="EN">This will be red</div>
<div lang="en">This will be red</div>
<div lang="PT">This will NOT be red</div>
Specyfika selektorów atrybutów
0-1-0
Taki sam jak selektor klasy i pseudoklasa.
*[type=checkbox] // 0-1-0
Zauważ, że oznacza to, że selektora atrybutów można użyć do wybrania elementu za pomocą jego identyfikatora na niższym poziomie specyficzności niż w przypadku wybrania go za pomocą selektora identyfikatora : [id="my-ID"]
kierowany na ten sam element, co #my-ID
ale o niższej specyficzności.
Aby uzyskać więcej informacji, zobacz sekcję Składnia .
Kombinatory
Przegląd
Selektor | Opis |
---|---|
div span | Selektor potomków (wszystkie <span> które są potomkami <div> ) |
div > span | Selektor potomków (wszystkie <span> które są bezpośrednim dzieckiem <div> ) |
a ~ span | Ogólny selektor rodzeństwa (wszystkie <span> które są rodzeństwem po <a> ) |
a + span | Sąsiadujący selektor rodzeństwa (wszystkie <span> które są bezpośrednio po <a> ) |
Uwaga: Selektory rodzeństwa są ukierunkowane na elementy, które występują po nich w dokumencie źródłowym. CSS ze swojej natury (kaskadowo) nie może kierować na poprzednie ani macierzyste elementy. Jednak za pomocą właściwości flex
order
poprzedni selektor rodzeństwa można symulować na nośnikach wizualnych .
Descendant Combinator: selector selector
Kombinator potomny reprezentowany przez co najmniej jeden znak spacji ( ), wybiera elementy, które są potomkami zdefiniowanego elementu. Ten kombinator wybiera wszystkich potomków elementu (od elementów potomnych w dół).
div p {
color:red;
}
<div>
<p>My text is red</p>
<section>
<p>My text is red</p>
</section>
</div>
<p>My text is not red</p>
W powyższym przykładzie wybrane są dwa pierwsze elementy <p>
, ponieważ oba są potomkami <div>
.
Kombinator dziecięcy: selector > selector
Kombinator potomny ( >
) służy do wybierania elementów, które są dziećmi lub bezpośrednimi potomkami określonego elementu.
div > p {
color:red;
}
<div>
<p>My text is red</p>
<section>
<p>My text is not red</p>
</section>
</div>
Powyższy CSS wybiera tylko pierwszy element <p>
, ponieważ jest to jedyny akapit bezpośrednio pochodzący z <div>
.
Drugi element <p>
nie został wybrany, ponieważ nie jest bezpośrednim dzieckiem elementu <div>
.
Sąsiadujący kombinator rodzeństwa: selector + selector
Kombinator sąsiedniego rodzeństwa ( +
) wybiera element rodzeństwa, który bezpośrednio podąża za określonym elementem.
p + p {
color:red;
}
<p>My text is not red</p>
<p>My text is red</p>
<p>My text is red</p>
<hr>
<p>My text is not red</p>
Powyższy przykład wybiera tylko te elementy <p>
, które są bezpośrednio poprzedzone innym elementem <p>
.
Generalny kombinator rodzeństwa: selector ~ selector
Ogólny kombinator rodzeństwa ( ~
) wybiera wszystkie rodzeństwo następujące po określonym elemencie.
p ~ p {
color:red;
}
<p>My text is not red</p>
<p>My text is red</p>
<hr>
<h1>And now a title</h1>
<p>My text is red</p>
Powyższy przykład wybiera wszystkie elementy <p>
, które są poprzedzone innym elementem <p>
, niezależnie od tego, czy są one bezpośrednio sąsiadujące.
Selektory nazw klas
Selektor nazwy klasy wybiera wszystkie elementy o docelowej nazwie klasy. Na przykład nazwa klasy .warning
wybrałaby następujący element <div>
:
<div class="warning">
<p>This would be some warning copy.</p>
</div>
Możesz także łączyć nazwy klas, aby precyzyjniej określać elementy docelowe. Oprzyjmy się na powyższym przykładzie, aby pokazać bardziej skomplikowany wybór klas.
CSS
.important {
color: orange;
}
.warning {
color: blue;
}
.warning.important {
color: red;
}
HTML
<div class="warning">
<p>This would be some warning copy.</p>
</div>
<div class="important warning">
<p class="important">This is some really important warning copy.</p>
</div>
W tym przykładzie wszystkie elementy z klasą .warning
będą miały niebieski kolor tekstu, elementy z klasą .important
mają pomarańczowy kolor tekstu, a wszystkie elementy, które mają zarówno nazwę klasy .important
i .warning
będą miały czerwony tekst kolor.
Zauważ, że w CSS deklaracja .warning.important
nie zawierała spacji między nazwami dwóch klas. Oznacza to, że znajdzie tylko te elementy, które zawierają oba warning
nazwach klas i są important
w ich atrybutach class
. Te nazwy klas mogą być w dowolnej kolejności na elemencie.
Jeśli spacja zostanie zawarta między dwiema klasami w deklaracji CSS, wybiorą tylko elementy, które mają elementy nadrzędne z .warning
klas .warning
i elementy podrzędne z nazwami .important
klas.
Selektory identyfikatorów
Selektory identyfikatorów wybierają elementy DOM o docelowym identyfikatorze. Aby wybrać element według określonego identyfikatora w CSS, używany jest prefiks #
.
Na przykład następujący element div
HTML…
<div id="exampleID">
<p>Example</p>
</div>
… Można wybrać za pomocą #exampleID
w CSS, jak pokazano poniżej:
#exampleID {
width: 20px;
}
Uwaga : specyfikacje HTML nie zezwalają na wiele elementów o tym samym identyfikatorze
Pseudoklasy
Pseudoklasy są słowami kluczowymi, które umożliwiają wybór na podstawie informacji, które znajdują się poza drzewem dokumentu lub które nie mogą być wyrażone przez inne selektory lub kombinatory. Informacje te można powiązać z pewnym stanem (pseudoklasy stanowe i dynamiczne ), lokalizacjami (pseudoklasy strukturalne i docelowe ), negacjami pierwszej (pseudoklasa negacyjna ) lub językami (pseudoklasa lang ). Przykłady obejmują to, czy podążono za linkiem ( :visited
), wskaźnik myszy znajduje się nad elementem ( :hover
), pole wyboru jest zaznaczone ( :checked
) itp.
Składnia
selector:pseudo-class {
property: value;
}
Lista pseudoklas:
Nazwa | Opis |
---|---|
:active | Dotyczy każdego elementu aktywowanego (tj. Klikniętego) przez użytkownika. |
:any | Umożliwia budowanie zestawów powiązanych selektorów poprzez tworzenie grup, które uwzględnione elementy będą pasować. Jest to alternatywa dla powtarzania całego selektora. |
:target | Wybiera bieżący aktywny element #news (kliknięty w adres URL zawierające tę nazwę kotwicy) |
:checked | Dotyczy sprawdzonych elementów radia, pola wyboru lub opcji lub przełączyło się na stan „włączony”. |
:default | Reprezentuje dowolny element interfejsu użytkownika, który jest domyślny w grupie podobne elementy. |
:disabled | Dotyczy każdego elementu interfejsu użytkownika, który jest w stanie wyłączonym. |
:empty | Dotyczy każdego elementu, który nie ma dzieci. |
:enabled | Dotyczy dowolnego elementu interfejsu użytkownika, który jest w stanie włączonym. |
:first | W połączeniu z regułą @page wybiera pierwszą stronę w wydrukowany dokument. |
:first-child | Reprezentuje każdy element, który jest pierwszym elementem potomnym jego elementu nadrzędnego. |
:first-of-type | Ma zastosowanie, gdy element jest pierwszym z wybranego typu elementu wewnątrz jego rodzica. To może być pierwsze dziecko. |
:focus | Dotyczy każdego elementu, na którym skupia się użytkownik. Może to być podane przez klawiatura użytkownika, zdarzenia myszy lub inne formy wprowadzania danych. |
:focus-within | Można go użyć do podświetlenia całej sekcji, gdy jeden element w niej jest skupiony. Pasuje do każdego elementu, który pasuje do pseudoklasy: focus lub który ma fokus potomka. |
:full-screen | Dotyczy dowolnego elementu wyświetlanego w trybie pełnoekranowym. Wybiera cały stos elementów, a nie tylko elementu najwyższego poziomu. |
:hover | Dotyczy dowolnego elementu ukrytego przez urządzenie wskazujące użytkownika, ale nie aktywowany. |
:indeterminate | Stosuje elementy interfejsu radiowego lub pola wyboru, które nie są ani zaznaczone, ani niezaznaczone, ale są w nieokreślonym stanie. Może to być spowodowane atrybut elementu lub manipulacja DOM. |
:in-range | Pseudoklasa :in-range CSS pasuje, gdy element ma jego atrybut wartości w ramach określonych ograniczeń zakresu dla tego elementu. Pozwala stronie przesłać informację zwrotną na temat aktualnie zdefiniowanej wartości użycie elementu mieści się w granicach zakresu. |
:invalid | Dotyczy elementów <input> , których wartości są niepoprawne zgodnie z typ określony w atrybucie type= . |
:lang | Odnosi się do każdego elementu, który zawija <body> element ma poprawnie wyznaczony lang= atrybut. Aby pseudoklasa była poprawna, musi zawierać poprawny dwu- lub trzyliterowy kod języka. |
:last-child | Reprezentuje każdy element, który jest ostatnim elementem potomnym jego rodzica. |
:last-of-type | Ma zastosowanie, gdy element jest ostatnim z wybranego typu elementu w środku jego rodzic. To może być ostatnie dziecko. |
:left | W połączeniu z regułą @page zaznacza wszystkie pozostałe strony w drukowanym dokumencie. |
:link | Dotyczy linków, które nie były odwiedzane przez użytkownika. |
:not() | Dotyczy wszystkich elementów, które nie pasują do przekazanej wartości ( :not(p) lub :not(.class-name) . Musi mieć wartość jest prawidłowy i może zawierać tylko jeden selektor. Można :not połączyć wiele :not selektorów razem. |
:nth-child | Stosuje się, gdy element jest n elementem swojego rodzica, gdzie n może być liczbą całkowitą, wyrażeniem matematycznym (np. n+3 ) lub słowami kluczowymi odd lub even . |
:nth-of-type | Stosuje się, gdy element jest n elementem jego rodzica ten sam typ elementu, gdzie n może być liczbą całkowitą, matematyczną wyrażenie (np. n+3 ) lub słowa kluczowe odd lub even . |
:only-child | Pseudoklasa CSS :only-child reprezentuje dowolny element który jest jedynym dzieckiem jego rodzica. To jest to samo co :first-child:last-child lub :nth-child(1):nth-last-child(1) , ale o niższej specyficzności. |
:optional | Pseudo-klasa :optional CSS reprezentuje dowolny element który nie ma ustawionego wymaganego atrybutu. To pozwala formularze, aby łatwo wskazać pola opcjonalne i odpowiednio je stylizować. |
:out-of-range | Pseudoklasa CSS :out-of-range pasuje, gdy element ma swój element atrybut wartości poza podanymi ograniczeniami zakresu dla tego elementu. Pozwala to stronie wyrazić opinię, że wartość aktualnie zdefiniowana za pomocą element jest poza granicami zakresu. Wartość może znajdować się poza zakresem, jeśli jest mniejsze lub większe niż maksymalne i minimalne ustawione wartości. |
:placeholder-shown | Eksperymentalny. Dotyczy dowolnego elementu formularza wyświetlającego obecnie tekst zastępczy. |
:read-only | Dotyczy każdego elementu, którego użytkownik nie może edytować. |
:read-write | Stosuje się do każdego elementu, który może edytować użytkownik, takiego jak elementy <input> . |
:right | W połączeniu z regułą @page wybiera wszystkie właściwe strony w wydrukowany dokument. |
:root | pasuje do elementu głównego drzewa reprezentującego dokument. |
:scope | Pseudoklasa CSS dopasowuje elementy, które są odwołaniem wskaż, aby selektory pasowały do. |
:target | Wybiera bieżący aktywny element #news (kliknięty w adres URL zawierające tę nazwę kotwicy) |
:visited | Dotyczy wszystkich linków, które odwiedził użytkownik. |
Pseudoklasa
:visited
nie może być już używana do większości stylizacji w wielu współczesnych przeglądarkach, ponieważ jest to luka w zabezpieczeniach. Zobacz ten link w celach informacyjnych.
Podstawowe selektory
Selektor | Opis |
---|---|
* | Selektor uniwersalny (wszystkie elementy) |
div | Selektor znaczników (wszystkie elementy <div> ) |
.blue | Selektor klas (wszystkie elementy oznaczone blue klasą) |
.blue.red | Wszystkie elementy z klasą blue i red (rodzaj selektora związków) |
#headline | Selektor identyfikatora (element z atrybutem „id” ustawiony na headline ) |
:pseudo-class | Wszystkie elementy z pseudoklasą |
::pseudo-element | Element pasujący do pseudoelementu |
:lang(en) | Element pasujący: deklaracja języka, na przykład <span lang="en"> |
div > p | selektor dziecka |
Uwaga: wartość identyfikatora musi być unikalna na stronie internetowej. Używanie wartości identyfikatora więcej niż jeden raz w tym samym drzewie dokumentów jest niezgodne ze standardem HTML .
Pełna lista selektorów znajduje się w specyfikacji CSS Selecters Level 3 .
Jak stylizować wejście Range
HTML
<input type="range"></input>
CSS
Efekt | Pseudo Selektor |
---|---|
Kciuk | input[type=range]::-webkit-slider-thumb, input[type=range]::-moz-range-thumb, input[type=range]::-ms-thumb |
Tor | input[type=range]::-webkit-slider-runnable-track, input[type=range]::-moz-range-track, input[type=range]::-ms-track |
OnFocus | input[type=range]:focus |
Dolna część toru | input[type=range]::-moz-range-progress, input[type=range]::-ms-fill-lower (obecnie niemożliwe w przeglądarkach WebKit - wymagany JS) |
Global boolean z polem wyboru: zaznaczone i ~ (ogólny kombinator rodzeństwa)
Za pomocą selektora ~ można łatwo wdrożyć globalnie dostępny boolean bez użycia JavaScript.
Dodaj wartość logiczną jako pole wyboru
Na samym początku dokumentu dodaj tyle boolanów, ile chcesz, z unikalnym id
i hidden
zestawem atrybutów:
<input type="checkbox" id="sidebarShown" hidden />
<input type="checkbox" id="darkThemeUsed" hidden />
<!-- here begins actual content, for example: -->
<div id="container">
<div id="sidebar">
<!-- Menu, Search, ... -->
</div>
<!-- Some more content ... -->
</div>
<div id="footer">
<!-- ... -->
</div>
Zmień wartość logiczną
Możesz przełączać wartość logiczną, dodając label
z zestawem atrybutów for
:
<label for="sidebarShown">Show/Hide the sidebar!</label>
Dostęp do wartości logicznej za pomocą CSS
Normalny selektor (jak .color-red
) określa właściwości domyślne. Można je zastąpić, stosując następujące selektory true
/ false
:
/* true: */
<checkbox>:checked ~ [sibling of checkbox & parent of target] <target>
/* false: */
<checkbox>:not(:checked) ~ [sibling of checkbox & parent of target] <target>
Zauważ, że <checkbox>
, [sibling ...]
i <target>
powinny zostać zastąpione odpowiednimi selektorami. [sibling ...]
może być konkretnym selektorem (często jeśli jesteś leniwy) po prostu *
lub niczym, jeśli cel jest już rodzeństwem pola wyboru.
Przykłady powyższej struktury HTML to:
#sidebarShown:checked ~ #container #sidebar {
margin-left: 300px;
}
#darkThemeUsed:checked ~ #container,
#darkThemeUsed:checked ~ #footer {
background: #333;
}
W akcji
Zobacz tę skrzynkę, aby zapoznać się z implementacją tych globalnych boolanów.
CSS3: przykład selektora zakresu
<style>
input:in-range {
border: 1px solid blue;
}
</style>
<input type="number" min="10" max="20" value="15">
<p>The border for this value will be blue</p>
Pseudoklasa :in-range
CSS pasuje, gdy element ma atrybut wartości wewnątrz określonych ograniczeń zakresu dla tego elementu. Pozwala to stronie wyrazić opinię, że wartość aktualnie zdefiniowana za pomocą elementu mieści się w granicach zakresu. [1]
Pseudoklasa dziecięca
„Pseudoklasa: nth-child (an + b) CSS pasuje do elementu, który ma w drzewie dokumentu rodzeństwo + b-1 przed nim, dla danej wartości dodatniej lub zerowej dla n” - MDN: nth-child
pseudo-selektor | 1 | 2) | 3) | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
:first-child | ✔ | |||||||||
:nth-child(3) | ✔ | |||||||||
:nth-child(n+3) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
:nth-child(3n) | ✔ | ✔ | ✔ | |||||||
:nth-child(3n+1) | ✔ | ✔ | ✔ | ✔ | ||||||
:nth-child(-n+3) | ✔ | ✔ | ✔ | |||||||
:nth-child(odd) | ✔ | ✔ | ✔ | ✔ | ✔ | |||||
:nth-child(even) | ✔ | ✔ | ✔ | ✔ | ✔ | |||||
:last-child | ✔ | |||||||||
:nth-last-child(3) | ✔ |
Wybierz element za pomocą jego identyfikatora bez wysokiej swoistości selektora ID
Ta sztuczka pomaga wybrać element wykorzystujący identyfikator jako wartość dla selektora atrybutów, aby uniknąć wysokiej specyficzności selektora ID.
HTML:
<div id="element">...</div>
CSS
#element { ... } /* High specificity will override many selectors */
[id="element"] { ... } /* Low specificity, can be overridden easily */
A. Przykład: nie pseudoklasowy i B.: focus-in pseudoklasowy CSS
A. Składnia została przedstawiona powyżej.
Poniższy selektor pasuje do wszystkich elementów <input>
w dokumencie HTML, które nie są wyłączone i nie mają klasy. .example
:
HTML:
<form>
Phone: <input type="tel" class="example">
E-mail: <input type="email" disabled="disabled">
Password: <input type="password">
</form>
CSS:
input:not([disabled]):not(.example){
background-color: #ccc;
}
Pseudoklasa :not()
będzie również obsługiwać selektory rozdzielane przecinkami na poziomie selektorów 4:
CSS:
input:not([disabled], .example){
background-color: #ccc;
}
Zobacz składnię w tle tutaj .
B. Pseudo-klasa CSS
HTML:
<h3>Background is blue if the input is focused .</p>
<div>
<input type="text">
</div>
CSS:
div {
height: 80px;
}
input{
margin:30px;
}
div:focus-within {
background-color: #1565C0;
}
Przykład selektora pseudoklasy: only-child
Pseudoklasa :only-child
CSS
reprezentuje każdy element, który jest jedynym dzieckiem jego rodzica.
HTML:
<div>
<p>This paragraph is the only child of the div, it will have the color blue</p>
</div>
<div>
<p>This paragraph is one of the two children of the div</p>
<p>This paragraph is one of the two children of its parent</p>
</div>
CSS:
p:only-child {
color: blue;
}
Powyższy przykład wybiera element <p>
, który jest unikalnym dzieckiem od swojego rodzica, w tym przypadku <div>
.
Selektor: ostatniego typu
:last-of-type
wybiera element, który jest ostatnim dzieckiem, określonego typu jego rodzica. W poniższym przykładzie css wybiera ostatni akapit i ostatni nagłówek h1
.
p:last-of-type {
background: #C5CAE9;
}
h1:last-of-type {
background: #CDDC39;
}
<div class="container">
<p>First paragraph</p>
<p>Second paragraph</p>
<p>Last paragraph</p>
<h1>Heading 1</h1>
<h2>First heading 2</h2>
<h2>Last heading 2</h2>
</div>