Tāpat kā visus CSS atlasītājus, varat izmantot :nth-child(), lai identificētu tīmekļa lapas elementus un piemērotu tiem stilus. Taču šis atlasītājs ļauj sašaurināt brāļu un māsu kopu, pamatojoties uz viņu relatīvo stāvokli.
MUO dienas video RITINĀT, LAI TURPINĀTU AR SATURU
Atlasītājs atbalsta dažus pamata atslēgvārdus bieži sastopamiem gadījumiem, taču tas nodrošina arī jaudīgu raksta atbilstības sintaksi. Izmantojot to, varat atlasīt elementus, pamatojoties uz regulāriem, atkārtotiem modeļiem vai sarežģītākām definīcijām, pamatojoties uz jūsu vajadzībām.
:nth-child() atlasītāja sintakse
Kā CSS pseidoklases atlasītājs , :nth-child() sintakse atšķiras no citiem atlasītājiem. Tas izmanto argumentu kā modeli elementu saskaņošanai brāļu un māsu komplektā:
:nth-child(args) {
/*...*/
}
Galvenā uzmanība tiek pievērsta iekavās norādītajiem argumentiem. Šie argumenti nosaka atlasāmo elementu apakškopu.
Atslēgvārdu vērtību izmantošana bieži sastopamiem gadījumiem
Šis atlasītājs var uzņemt divas atslēgvārdu vērtības: nepāra un pat . Tie ir īpaši noderīgi alternatīvu rindu veidošana tabulā .
Vienkāršs sakārtots saraksts ir vēl viens labs piemērs tam, kad varat izmantot šīs atslēgvārdu vērtības:
<ol>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
<li>Item 6</li>
<li>Item 7</li>
</ol>
Izmantojot :nth-child(nepāra) atlasītāju, varat mainīt katra alternatīvā vienuma krāsu:
kā izveidot sāknēšanas disku
:nth-child(odd) {
color: red;
}
Vienumi sākas ar indeksu 1, tāpēc pirmais vienums būs sarkans, tad trešais un tā tālāk:
Funkcionāls apzīmējums lielākai elastībai
Varat izmantot vienu veselu skaitli, lai atlasītu atsevišķu elementu, piemēram:
li:nth-child(4) {
color: red;
}
Šajā gadījumā atlasītājs atbilst tikai ceturtajam saraksta vienumam:
Šī sintakse ir vispārīgākas funkcionālās sintakses īpašs gadījums, kas atlasa vienumus, kas atbilst konkrētajam modelim. Šī sintakse ir:
:nth-child(An+B) {
/*...*/
}
Šajā apzīmējumā A ir soļa izmērs. Tas nozīmē, cik reižu atlasītājs pārvietojas, lai atlasītu nākamo vienumu. Tas ļauj atlasīt katru otro vienumu, katru trešo vienumu utt. B ir sākuma punkts, kur sākas atlase.
Piemēram, ņemiet argumentu 3n+1:
li:nth-child(3n+1) {
color: red;
}
Tas sāks atlasi pie pirmā vienuma un turpinās ar katru trešo vienumu pēc tam:
Salīdziniet to ar izteiksmi 3n+2:
li:nth-child(3n+2) {
color:red;
}
Tas joprojām atlasa katru trešo vienumu, bet tagad tas sākas no otrā vienuma sarakstā:
kāpēc mans diska lietojums ir 100
Vēl viens interesants piemērs ir :nth-child(n+3):
li:nth-child(n+3) {
color: red;
}
Tas atlasīs katru vienumu (n), sākot no trešā (+3). Tas izskatīsies šādi:
Varat arī izmantot atņemšanu, lai sasniegtu noteiktus rezultātus:
li:nth-child(3n-1) {
color: red;
}
Šajā piemērā joprojām tiek atlasīts katrs trešais vienums, bet tas sākas ar mīnusu vispirms. Faktiski tas nozīmē, ka tas atlasīs otro vienumu sarakstā, pēc tam piekto un tā tālāk:
kā atbloķēt tālruni bez maksas
No sintakse
Varat arī izmantot atslēgvārdu no kam seko a atlasītājs kā argumentu :nth-child() atlasītājā. Šī sintakse ļauj sašaurināt iespējamos vienumus, no kuriem atlasa parastā shēma.
Piemēram, iedomājieties, ka jūsu marķējums ir sarežģītāks nekā oriģināls:
<ol>
<li class="old">Item 1</li>
<li class="new">Item 2</li>
<li class="new">Item 3</li>
<li class="old">Item 4</li>
<li class="new">Item 5</li>
<li class="new">Item 6</li>
<li class="new">Item 7</li>
</ol>
Tagad izmantojiet :nth-child, lai atlasītu pāra vienumus no to kopas, kurām ir noteikta klase:
.new {
font-weight: bold;
}
li:nth-child(even of.new) {
color: red;
}
Ievērojiet, kā sarkani ir tikai pāra skaitļu treknrakstā norādītie vienumi:
Apsveriet arī, kā tas atšķiras no li.new:nth-child(pāra) kas attiecas uz .jauniem elementiem, bet tikai tad, ja tie ir pāra. Tas būtu 2. un 6. punkts iepriekš minētajā piemērā.
Darbs ar :nth-child() atlasītāju
Varat izveidot unikālus dizainus, izmantojot atlasītāju :nth-child(). Varat izveidot krāsainas vietnes un izcelt rindas un kolonnas datu tabulās. Apvienojot to ar citiem CSS atlasītājiem, varēsit izveidot sarežģītus izkārtojumus un dizainus.