: n-edik-utolsó - CSS-trükkök

Anonim

A :nth-last-childválasztó lehetővé teszi egy vagy több elem kiválasztását a forrás sorrendje alapján, egy képlet szerint. A CSS Selectors 3. szintű specifikációja „strukturális ál-osztályként” definiálja, vagyis a tartalom stílusához használják a szülő és a testvér elemekkel való kapcsolata alapján. Ugyanúgy működik, mint :nth-childazzal, hogy az elemeket a forrás sorrend aljától kezdődően választja ki, nem pedig a tetejét.

Tegyük fel, hogy van egy ismeretlen számú elemlista, és ki akarjuk emelni az utolsó előtti tételt (ebben a pontos példában a „negyedik elem”):


  • First Item
  • Second Item
  • Third Item
  • Fourth Item
  • Fifth Item

Ahelyett, hogy valami olyat .highlighttennénk, mint egy osztály hozzáadása a listaelemhez (pl. ), Használhatjuk :nth-last-child:

li ( background: slategrey; ) /* select the second-last item */ li:nth-last-child(2) ( background: lightslategrey; )

Amint láthatja, :nth-last-childargumentumot vesz fel: ez lehet egyetlen egész szám, a „páros” vagy „páratlan” kulcsszó vagy egy képlet. Ha egész szám van megadva, csak egy elemet választanak ki - de a kulcsszavak vagy a képlet végigvezetik a szülőelem összes gyermekét, és kiválasztanak egyező elemeket - hasonlóan a tömb elemeinek navigálásához a JavaScript-ben. A „páros” és a „páratlan” kulcsszavak egyértelműek (2, 4, 6 stb. Vagy 1, 3, 5). A képlet a szintaxis felhasználásával készül an+b, ahol:

  • Az „a” egész szám
  • „N” a szó szerinti „n” betű
  • A „+” operátor, és lehet „+” vagy „-”
  • A „b” egész szám, és akkor szükséges, ha egy operátor szerepel a képletben

Fontos megjegyezni, hogy ez a képlet egy egyenlet, és az egyes testvérelemeken keresztül ismétlődik, meghatározva, hogy melyiket választják ki. A képlet „n” része, ha benne van, növekvő pozitív egészek halmazát jelenti (akárcsak egy tömbön keresztüli iteráció). A fenti példánkban minden második elemet kiválasztottunk a képlettel 2n, ami azért működött, mert minden egyes elem ellenőrzésénél az „n” eggyel nőtt (2 × 0, 2 × 1, 2 × 2, 2 × 3 stb.). Ha egy elem sorrendje megegyezik az egyenlet eredményével, akkor kiválasztásra kerül (2, 4, 6 stb.). Az érintett matematika részletesebb magyarázatához olvassa el ezt a cikket.

A további szemléltetés érdekében íme néhány példa az érvényes :nth-last-of-typeválasztókról:

Nézze meg ezt a tollat!

Szerencsére nem mindig kell magának :nth-last-childmatekoznia - több tesztelő és generátor is van ott:

  • CSS-trükkök tesztelője
  • Lea Verou tesztelője

Látványosság

  • :nth-last-childa forrásrend aljától kezdődő elemeken keresztül iterál. Az egyetlen különbség közte és :nth-childaz, hogy az utóbbi a forrásrend tetejétől kezdődő elemeken keresztül iterál.
  • A :nth-last-childválasztó nagyon hasonló, :nth-last-of-typede egy kritikus különbséggel: kevésbé specifikus. A fenti példánkban ugyanazt az eredményt produkálnák, mert csak lielemeket ismételünk , de ha egy összetettebb testvércsoporton keresztül ismételnénk, :nth-last-childakkor megpróbálnánk az összes testvért illeszteni, nem csak az azonos elemtípusú testvéreket. Ez feltárja annak erejét, :nth-last-childhogy bármely testvér elemet kiválaszthat egy elrendezésben, nem csak a kettőspont előtt megadott elemeket.

Böngésző támogatás

Króm Szafari Firefox Opera AZAZ Android iOS
Művek 3.2+ Művek 9.5+ 9+ Művek Művek

:nth-last-childa CSS Selectors 3. moduljában vezették be, ami azt jelenti, hogy a böngészők régi verziói nem támogatják. A modern böngészőtámogatás azonban kifogástalan, és az új álválasztókat széles körben használják a gyártási környezetekben. Ha régebbi böngészőtámogatásra van szüksége, vagy töltse ki az IE-t, vagy használja ezeket a választókat nem kritikus módon, fokozatosan továbbfejlesztve, ami ajánlott.