:nth-last-child
Volič umožňuje vybrať jeden alebo viacero prvkov na základe ich zdrojové poradí, podľa vzorca. Je definovaná v špecifikácii CSS Selectors úrovne 3 ako „štrukturálna pseudotrieda“, čo znamená, že sa používa na štýlovanie obsahu na základe jeho vzťahu s nadradenými a súrodeneckými prvkami. Funguje rovnako, :nth-child
až na to, že vyberá položky začínajúce od dolnej časti zdrojovej objednávky, nie od hornej.
Predpokladajme, že máme zoznam s neznámym počtom položiek a chceli by sme zvýrazniť predposlednú položku (v tomto presnom príklade „štvrtá položka“):
- First Item
- Second Item
- Third Item
- Fourth Item
- Fifth Item
Namiesto toho, aby sme robili niečo ako pridanie triedy do položky zoznamu (napr. .highlight
), Môžeme použiť :nth-last-child
:
li ( background: slategrey; ) /* select the second-last item */ li:nth-last-child(2) ( background: lightslategrey; )
Ako vidíte, :nth-last-child
berie argument: môže to byť jedno celé číslo, kľúčové slová „párne“ alebo „nepárne“ alebo vzorec. Ak je zadané celé číslo, je vybraný iba jeden prvok - kľúčové slová alebo vzorec však budú iterovať cez všetky podradené prvky nadradeného prvku a vyberú zodpovedajúce prvky podobné navigácii po položkách v poli v JavaScripte. Kľúčové slová „párne“ a „nepárne“ sú priame (2, 4, 6 atď. Alebo 1, 3, 5). Vzorec je zostavený pomocou syntaxe an+b
, kde:
- „A“ je celočíselná hodnota
- „N“ je doslovné písmeno „n“
- „+“ Je operátor a môže to byť „+“ alebo „-“
- „B“ je celé číslo a je potrebné, ak je do vzorca zahrnutý operátor
Je dôležité poznamenať, že tento vzorec je rovnica a iteruje cez každý súrodenecký prvok a určuje, ktorý bude vybraný. Časť „n“ vzorca, ak je zahrnutá, predstavuje množinu zvyšujúcich sa kladných celých čísel (rovnako ako iterácia poľom). V našom príklade vyššie sme vybrali každý druhý prvok so vzorcom 2n
, ktorý fungoval, pretože pri každej kontrole prvku sa „n“ zvýšilo o jeden (2 × 0, 2 × 1, 2 × 2, 2 × 3 atď.). Ak sa poradie prvku zhoduje s výsledkom rovnice, vyberie sa (2, 4, 6 atď.). Podrobnejšie vysvetlenie matematiky sa dozviete v tomto článku.
Na ilustráciu uvádzame niekoľko príkladov platných :nth-last-of-type
selektorov:
Vyskúšajte toto pero!
Našťastie nemusíte vždy robiť matematiku sami - existuje niekoľko :nth-last-child
testerov a generátorov:
- Tester trikov CSS
- Tester Lea Verou
Body záujmu
:nth-last-child
iteruje prvkami začínajúcimi od spodnej časti zdrojovej objednávky. Rozdiel je iba v tom:nth-child
, že tento iteruje prvkami začínajúcimi od hornej časti zdrojovej objednávky.:nth-last-child
Volič je veľmi podobná:nth-last-of-type
, ale s jedným kritickým rozdielom, že je menej špecifické. V našom príklade vyššie by priniesli rovnaký výsledok, pretože iterujeme iba nadli
prvkami, ale ak by sme iterovali nad zložitejšou skupinou súrodencov,:nth-last-child
pokúsili by sme sa spojiť so všetkými súrodencami, nielen so súrodencami rovnakého typu prvku. Toto odhaľuje silu funkcie:nth-last-child
-it môže vybrať ľubovoľného súrodeneckého prvku v usporiadaní, nielen prvky určené pred dvojbodkou.
Podpora prehľadávača
Chrome | Safari | Firefox | Opera | IE | Android | iOS |
---|---|---|---|---|---|---|
Tvorba | 3,2+ | Tvorba | 9,5+ | 9+ | Tvorba | Tvorba |
:nth-last-child
bol predstavený v CSS Selectors Module 3, čo znamená, že staré verzie prehľadávačov ho nepodporujú. Avšak moderná podpora prehľadávačov je dokonalá a nové pseudo-selektory sa široko používajú v produkčných prostrediach. Ak požadujete podporu starších prehliadačov, buď polyfill pre IE, alebo použite tieto selektory nekritickými spôsobmi á la progresívne vylepšenie, ktoré sa odporúča.