Gyermekválasztók. Gyermek- és kontextuális css -választók A css gyermekelemeket választ
Azt hiszem, sokan tudják kontextusválasztók a CSS -ben... Ezeket leggyakrabban használják, azonban a tapasztalt elrendezéstervezők jól tudják, hogy néha a kontextusválasztók bizonyos problémákat okoznak. Ez a probléma összefügg azzal a ténnyel, hogy egy elem szerkezetében sok azonos elem lehet egymásba ágyazva. És a stílust nem minden beágyazott elemre kell alkalmazni, hanem csak a közvetlenül gyermek elemre. Ezt használják erre. gyermekválasztók a CSS -ben.
A probléma világosabbá tétele érdekében mondjunk egy kis példát. Legyen ilyenünk HTML kód:
Első bekezdés
Második bekezdés
És a mi feladatunk az, hogy csak piros legyen " Második bekezdés". Ha kontextusválasztóval írunk:
Konténer p (
piros szín;
}
Ekkor mindkét bekezdés pirossá válik, amire egyáltalán nincs szükségünk. Ez a feladat nagyon könnyen megoldható használatával gyermekválasztók a CSS -ben:
Konténer> p (
piros szín;
}
Minden, most csak vörös lettünk " Második bekezdés". Mivel ez a bekezdés közvetlenül a gyermeke .tartály... A " Első bekezdés"a belső gyermeke divígy nem esik a gyermekválasztó hatása alá.
Ilyen könnyen megoldhatók az ilyen feladatok, azonban van egy hatalmas hátránya. gyermekválasztók a CSS -ben- nem működnek böngészőkben internet böngésző ... Emiatt használatuk nagyon nem kívánatos. De ha hirtelen találkozol valahol, akkor most tudni fogod, mit jelent adott típus kiválasztók és mit csinálnak.
Elérted a fejezet harmadik részét. Itt megtanulhatja a gyermekválasztók használatát a CSS-ben, valamint néhány további pszeudo-osztályt a pontosabb mintavétel érdekében.
Gyermek CSS -választók
Az előző cikkben a HTML dokumentum elemei közötti kapcsolatokról beszéltünk, beleértve a gyerekeket is. Nézzünk egy példát arra, hogyan használhatók ezek a kapcsolatok a CSS -ben.
Képzelje el, hogy csak ezeket a címkéket kell formáznia
Amelyek gyermekei
anélkül, hogy befolyásolná a többit(például,
Leányvállalatai
Hogyan kell csinálni? Nagyon egyszerű: hozzunk létre egy gyermekválasztót:
Test> p (szín: # 333;)
Figyelje meg a> szimbólumot a törzs után. Ezzel azt jelzi, hogy a stílus kizárólag a gyermekcímkékre vonatkozik
Szülő
... Ha a szimbólum eltávolításra kerül, a stílus abszolút minden címkére vonatkozik.Melyek a címke belsejében vannak
, bár lehet, hogy nem ennek a gyermekei.További pszeudo-osztályok
A CSS3-ban számos álosztály található a gyermekekkel való munkához. Az alábbiakban mindegyik leírását, felhasználási példáit, valamint a "gyermek" és a "típusú" álosztályok közötti különbségeket mutatjuk be.
- : first-child-Ez az álosztály használható a weboldal meghatározott elemének stílusához, feltéve, hogy az első
- : last -child - a stílus a megadott weboldal -elemre vonatkozik, feltéve, hogy az az utolsó szülő gyermeke;
- : n -edik gyermek - lehetővé teszi a páros (páros) és páratlan (páratlan) gyermekek kiválasztását; ezt az álosztályt arra is használhatja, hogy a váltakozó gyermekek stílusát olyan kifejezések használatával használja, mint az an + b és a számok;
- : only -child - A gyermek elemre vonatkozik, feltéve, hogy az az egyetlen gyermek szülővel;
- : első típusú-a stílust alkalmazzák a megadott típus első eleméhez(még akkor is, ha ez az elem nem a szülő első gyermeke, és más típusú gyermekek fölötte vannak);
- : last-of-type-pontosan ugyanúgy működik, mint az előző pszeudo-osztály, azzal a különbséggel, hogy a stílust alkalmazzák a megadott típus utolsó eleméhez;
- : n-edik típus-úgy működik, mint: n-edik gyermek, de a típusú elem;
- : only-of-type-a meghatározott típusú gyermekekre vonatkozik, feltéve, hogy a szülő rendelkezik vele típusának egyetlen gyermeke.
Példa használat: első gyermek ,: utolsó gyermek és: n. Gyermek
Első gyerek
Második gyermek
Harmadik gyermek
Páratlan szám |
Páros szám |
Páratlan szám |
Páros szám |
Utolsó gyerek
/ * CSS * / p: első gyermek (font-weight: bold; text-transform: nagybetű;) p: last-child (font-style: italic; font-size: 0.8em;) p: nth-child ( 3) (szín: piros;) tr: n-edik gyermek (páratlan) (háttér-szín: # A2DED0;) tr: n-edik gyermek (páros) (háttér-szín: # C8F7C5;) Pillanatkép: alkalmazás: első gyermek, : utolsó gyermek és: n-edik gyermek
Egy egyszerű HTML dokumentum gyermekei számára írtunk egy CSS stílust, ahol a címke
,
Samsung | Galaxy S7 Edge | 60000 |
alma | iPhone SE | 39000 |
Microsoft | Lumia 650 | 13500 |
Alcatel | Idol S4 | 30000 |
Huawei | P9 | 60000 |
Htc | HTC 10 | 50000 |
Meizu | Pro 6 | 40000 |
Xiaomi | Mi5 | 35000 |
A páratlan elemek stílusának meghatározásához a "páratlan" értéket adja át a választónak:
Tr: n-edik gyermek (páratlan) ()
Páros elemek stílusának kialakításához a "páros" értéket átadja a választónak:
Tr: n-edik gyermek (páros) ()
A stílusos elem számát is átadhatjuk ennek a választónak:
Tr: n-edik gyermek (3) (háttérszín: #bbb;)
Ebben az esetben a harmadik sor kerül kialakításra.
Egy másik lehetőség egy helyőrző használata a számhoz, amelyet az n betű fejez ki:
Tr: n-edik gyermek (2n + 1) (háttérszín: #bbb;)
Itt a stílust minden második páratlan sorra alkalmazzák.
Az n előtti szám (ebben az esetben 2) azt a gyermeket jelöli, amelyet a következőképpen kiemelnek. A plusz jelet követő szám azt jelzi, hogy melyik elemből kell elindítani a kiválasztást, vagyis a +1 azt jelenti, hogy az első gyermektől kell kezdeni.
Így ebben az esetben a kiválasztás az 1. elemből indul, és a következő 2 * 1 + 1 = 3. elem, majd 2 * 2 + 1 = 5. elem stb.
Például, ha minden harmadik elemet ki akarunk választani, kezdve a másodikkal, akkor ezt írhatjuk:
Tr: n-edik gyermek (3n + 2) (háttérszín: #bbb;)
Az: n-edik utolsó gyermek pszeudo-osztály lényegében ugyanazt a funkcionalitást biztosítja, kivéve, hogy az elemeket nem az elejétől, hanem a végétől számoljuk:
Tr: nth-last-child (2) (background-color: #bbb; / * 2 sor a végétől, vagyis az utolsó előtti * /) tr: nth-last-child (2n + 1) (background-color : #eee; / * páratlan sorok a végétől kezdődően * /)
Típusú pszeudo-osztály
Az: n-edik típusú pszeudo-osztály lehetővé teszi egy adott típusú gyermek kiválasztását egy adott szám alapján:
Tr: n-edik típus (2) (háttérszín: #bbb;)
A típus n-edik ál-osztálya hasonló módon működik, csak most az elemeket a végétől számoljuk:
Tr: n-edik utolsó típus (2n) (háttérszín: #bbb;)
- Az elvégzendő feladat a gyermekek kiválasztása.
- Megnevezés - láncolás: egyszerű szülőválasztó, ">" kombinátor, egyszerű gyermekválasztó.
- Használati példa:
Állítsuk be a bal oldali behúzást a tartalomosztállyal közvetlenül az elembe ágyazott listához (ezek a szabályok nem befolyásolják a második beágyazási szint listáit):
Tartalom> ul (margó balra: 20 képpont;)
További információ a gyermekválasztóról
A fő különbség a gyermekválasztó és a korábban tárgyalt között az a tény, hogy ha a gyermekválasztó a fészkelési szinttől függetlenül kiválasztja az összes leszármazottat, akkor a gyermekválasztó csak az első szintű leszármazottakat - vagyis közvetlenül egymásba ágyazott elemeket - választja ki. Például írjuk ezt:
Div> span (szín: # 555; / * szürke * /)
... és ez a kód:
Ismét fekete szöveg van. És ez a szöveg is fekete, mivel ez a tartomány nem a div gyermeke. Közvetlen szülője a p tag.
Az utód CSS -választók olyan szelektorok, amelyeket csak akkor használnak stílusok alkalmazására az elemekre, ha más (szülő) elemek gyermekei. A leszármazott szelektorokhoz hasonlóan a gyermekválasztók összetettek, és egyszerű választókból (osztályok, azonosítók stb.) Állnak.
Ismét, ha elfelejtette, hogy melyek a gyermek elemek, akkor emlékezzünk arra, hogy elemezzük az Ön számára már ismert példát.
<тег1> <тег2>...тег2> <тег3><тег4>...тег4>тег3> тег1>
Egy elemet egy másik elem gyermekének neveznek, ha benne van az első fészkelési szinten. Példánkban<тег2>és<тег3>lányok<тег1>, a<тег4>- ez egy lánya<тег3> .
A gyermekválasztók két vagy több egyszerű választóból állnak, amelyeket ">" választ el egymástól, ahol először a szülő szerepel, majd annak gyermeke, majd ennek a gyermeknek a gyermeke stb. Vagyis, mint a leszármazott szelektorokban, a dokumentumfa útvonala van megadva. A stílusok csak azokra az elemekre lesznek alkalmazva, amelyek kiválasztói az utolsóak a listában. Általános szintaxis:
selector1> selector2 (
A ">" jel mindkét oldalán lévő szóközök tetszés szerint használhatók vagy nem.
Példa CSS gyermekválasztók használatára
1. bekezdés
2. bekezdés
Eredmény a böngészőben
1. bekezdés
2. bekezdés
Ebben a példában két pontra kell figyelni. Itt három elem van, de csak kettő rendelkezik szegéllyel, párnázással és margóval. Miért? És a második pont. Csak az első bekezdés kék színű.
Az Internet Explorer 6.0 nem érti a gyermekválasztókat, ezért ha ezt a régi böngészőt szem előtt tartva építi fel webhelyét, vegye figyelembe ezt.
Gyermekválasztók a HTML táblákban
Sok újonc (és néha már nem kezdő) a webhelyek létrehozásakor bizonyos problémákkal szembesül, amikor gyermekválasztókat használ a HTML táblákban. Hogy értsd mit kérdéses, nézzünk egy ilyen közös táblázatot.
Cella 1.1 | 1.2. Cella |
2.1. Cella | 2.2. Cella |
És most egy kérdés. Mi a teendő, ha a címkéről a cellákra kell navigálnia gyermekválasztók segítségével? Ha úgy dönt, hogy így ír, akkor téved:
táblázat> tr> td ( ingatlan érték; ingatlan érték; ...)
Kitalálod, miért baj? Nem? A tény az, hogy elfelejtett még egy elemet - amely, még ha nincs is kifejezetten megadva, mégis láthatatlanul jelen van minden HTML -táblában. Csak nem rendelkezik a szükséges nyitó és záró címkékkel, ezért gyakran figyelmen kívül hagyják. Mellesleg igen, bent HTML bemutató nem veled mentünk keresztül, mert a valóságban annak kifejezett jelzésére ritkán van szükség. Nos, azt hiszem, már sejtette, mi lesz helyes bejegyzés, de mindezt megmutatom.
táblázat> test> tr> td ( ingatlan érték; ingatlan érték; ...)
Egyébként nemcsak a táblázatok tartalmaznak választható nyitócímkékkel rendelkező elemeket, hanem vannak ilyen elemek is. Csak a gyakorlatban a "feledékenységi problémák" leggyakrabban asztalokkal jelentkeznek, ezért felhívtam erre a figyelmet.
Házi feladat.
- Telepítse az Arial 0.9em betűtípust és némi hátteret az oldalon.
- Írjon néhány címsort és bekezdést az oldalra, változtassa meg a címsor szövegének méretét és színét, ahogy jónak látja.
- A linkeket közvetlenül az oldal bekezdéseiben tegye kék színűvé aláhúzás nélkül. Ugyanakkor, ha a linkeket ezenkívül bármilyen címkével keretezik, például dőlt betűvel, akkor azokat aláhúzással és pirossal kell megjeleníteni. Még egyszer felhívom a figyelmet arra a tényre, hogy nem kell minden egyes keretezőcímkéhez külön linkírási stílusokat írni, hanem egyetemessé tenni. Hogyan? Gondolkozz el róla.
- Hozzon létre egy kis menüt az oldal jobb oldalán, és javítsa ki, ehhez szüksége van egy tulajdonságra és néhány más kapcsolódó tulajdonságra, ott kitalálja. Ugyanakkor hagyja, hogy a menü ne csak a helyén maradjon a böngészőablakban, hanem ne másszon át az oldal tartalmán görgetés közben.
Azt hiszem, a lecke utolsó pontja lesz a legnehezebb az Ön számára, de ne próbálja azonnal elmerülni a pozicionálás elsajátításában. Csak végezze el a házi feladatát. Ez az elem egyébként nem fog működni az Internet Explorer 6.0 -ban, mivel az öreg nem érti a rögzített pozicionálást.