Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Recenzii
  • Selectoare de copii în CSS. Selectoare personalizate în CSS

Selectoare de copii în CSS. Selectoare personalizate în CSS

Sarcina principală a acestui selector decurge din numele său și este de a accesa un element copil. Afișat folosind un semn primitiv „>”, care leagă elementul copil de elementul părinte. De asemenea, este de remarcat faptul că se folosesc selectoare simple. Ca exemplu, luați în considerare următoarea codificare:

Element > ul ( padding-top: 20px; )

Această codificare înseamnă că o listă imbricată într-un element va avea o umplutură de 20 de pixeli de la marginea de sus. Prezența pictogramei „>” în această intrare indică faptul că regula se va aplica numai listelor de la primul nivel de imbricare.

O analiză detaliată a modului în care funcționează selectorul de elemente copil

Un selector de element copil are proprietăți similare conceptului de selector descendent. Cu toate acestea, există o trăsătură caracteristică care arată diferența fundamentală dintre aceste operațiuni. Constă în faptul că influența selectorului descendent se extinde la absolut toate elementele, în timp ce selectorul copil subordonează stilurile de poziții ale primului nivel de clasificări.

Următorul exemplu vă va ajuta să evaluați mai clar activitatea operatorului selector de copii:

Div > p (culoare: #ff0000; /* roșu */ )

< div>Această linie va avea text negru în mod implicit.< span>Această linie devine roșie din cauza faptului că p este o etichetă copil pentru div. < p>Vedem din nou litere negre.< span>Aici vedem și simboluri negre, deoarece pentru acest interval părintele este eticheta p.

Acest exemplu confirmă funcționarea operatorului selector de copii în funcție de gradul de imbricare.

Restricție pentru utilizarea operatorului selector de copii

Este de remarcat faptul că această operațiune este acceptată de toate browserele, cu excepția legendarului Internet Explorer 6. Cred că puțini oameni folosesc acest browser, totuși, dacă există unele unice, atunci există o cale de ieșire pentru ele, care va fi descrisă într-un articol separat.

De ce este folosit?

Programatorii apelează la selectorii de elemente copil atunci când trebuie să-și atribuie propriul stil unic elementelor imbricate. De asemenea, utilizarea acestui selector poate reduce cantitatea de CSS, ceea ce va îmbunătăți lizibilitatea documentului. După cum arată practica, această operațiune este cel mai des utilizată la crearea meniurilor derulante.

Selectorul de elemente copil este, de asemenea, folosit pentru a atribui stiluri unice elementelor ai căror părinți sunt deja cunoscuți. Cu alte cuvinte:

Principal > antet ( /* decorarea se aplică numai antetului principal */ }

Acest exemplu este valabil în cazurile în care eticheta antet este utilizată pentru a evidenția titlurile articolelor. În cazul nostru, setăm designul numai pentru antetul principal și nu le afectăm pe cele secundare. Această tehnică vă permite, de asemenea, să evitați utilizarea unor identificatori inutile, care la rândul lor ușurează greutatea fișierului CSS și îl face mai lizibil.

Rezumând

Astfel, operatorul elementului copil poate fi folosit nu numai pentru a proiecta meniuri derulante, ci și pentru a optimiza ușor resursa de internet pentru munca roboților de căutare.

Ați ajuns la partea a treia a acestui capitol. Aici veți învăța cum să utilizați selectoarele de elemente copil în CSS, precum și câteva pseudo-clase suplimentare pentru o selecție mai precisă.

Selectoare de copii CSS

În articolul anterior, am vorbit despre relațiile dintre elementele unui document HTML, inclusiv elementele copil. Să ne uităm la un exemplu despre modul în care aceste relații pot fi utilizate în CSS.

Imaginează-ți că trebuie doar să stilezi acele etichete

Care sunt filiale ale fără a-i afecta pe ceilalți

(De exemplu,

Filiale ale

).
Cum să o facă? Este foarte simplu: să creăm un selector de copii:

Corp > p (culoare: #333; )

Observați simbolul > după corp. Cu acesta indicați că stilul este aplicat exclusiv etichetelor copil

Mamă . Dacă simbolul este eliminat, stilul va fi aplicat absolut tuturor etichetelor

Care sunt în interiorul etichetei , deși s-ar putea să nu fie copiii săi.

Pseudoclase suplimentare

CSS3 are o serie de pseudo-clase pentru lucrul cu elemente copil. Mai jos este o descriere a fiecăruia dintre ele, exemple de utilizare, precum și diferențele dintre pseudo-clasele de tip „copil” și „de tip”.

  • :first-child – Folosind această pseudo-clasă, puteți aplica un stil unui element specificat al unei pagini web, cu condiția ca acesta să fie primul
  • :last-child – stilul este aplicat elementului specificat al paginii web, cu condiția să fie așa ultimul un copil al părintelui său;
  • :nth-child – vă permite să selectați elemente copil par (pare) și impar (impar); De asemenea, puteți utiliza această pseudo-clasă pentru a stila elementele secundare alternative folosind expresii precum an+b și numere;
  • :only-child – se aplică unui element copil, cu condiția să fie singurul un copil de la un părinte;
  • :first-of-type – la care se aplică stilul primul element de tipul specificat(chiar dacă acest element nu este primul copil al părintelui său și mai sunt alți copii de alte tipuri deasupra lui);
  • :last-of-type – funcționează exact la fel ca pseudo-clasa anterioară, singura diferență fiind că stilul este aplicat la ultimul element de tipul specificat;
  • :nth-of-type – similar în principiu cu :nth-child , dar se concentrează pe tip element;
  • :only-of-type – se aplică unui element copil de tipul specificat, cu condiția ca acesta să fie părintele singurul copil de genul lui.

Exemplu de utilizare:primul-copil, :ultimul-copil și :nth-child

Primul copil

Al doilea copil

Al treilea copil

Numar impar
Număr par
Numar impar
Număr par

Ultimul copil

/* CSS */ p:primul copil (greutatea fontului: bold; transformarea textului: majuscule; ) p:last-child (stil font: cursiv; dimensiunea fontului: 0.8em; ) p:nth-child( 3) ( culoare: roșu; ) tr:nth-child (impar) ( culoare de fundal: #A2DED0; ) tr:nth-child (par) ( culoare de fundal: #C8F7C5; ) Captură de ecran: aplicație:primul copil, :ultimul-copil și :al-al-lea copil

Am scris un stil CSS pentru copiii unui document HTML simplu, unde eticheta

este părintele pentru etichete

,

. Să ne uităm la CSS unul câte unul.

Prima regulă - p:primul-copil - se referă la elementul p: dacă este primul copil al părintelui său, apoi i se aplică un stil (în cazul nostru, acesta este un font aldine și convertirea textului în majuscule). Dacă în codul HTML dat imediat după eticheta de deschidere

adăugați o altă etichetă (de exemplu,

), atunci stilul p:first-child nu va mai fi afișat, deoarece

Nu va mai fi prima etichetă copil. În acest caz, primul element copil va fi h2.

Același lucru se întâmplă cu regula p:last-child - stilul CSS va fi aplicat etichetei

Doar când apare ultimul copil al părintelui său. Adăugați după

Orice altă etichetă de alt tip și veți vedea că regula p:last-child nu se va mai aplica.

Regula p:nth-child(3) funcționează pentru al treilea eticheta de copil

(aceasta este indicată de numărul 3 dintre paranteze). Culoarea fontului pentru acest paragraf devine roșu. Puteți schimba numărul 3 (de exemplu, cu 2) și puteți vedea rezultatul.

Regulile tr:nth-child(impar) și tr:nth-child(par) funcționează pentru elementele pare și, respectiv, tr. Puteți vedea rezultatul în captură de ecran și, de asemenea, copiați tot codul și experimentați singuri stilurile.

Exemplu de utilizare: first-of-type, :last-of-type, :nth-of-type și :only-of-type

Primul copil

Al doilea copil

Al treilea copil

Al patrulea copil

Al cincilea copil

Ultimul copil

/* CSS */ p:first-of-type (culoare: violet; text-transform: majuscule; ) p:last-of-type (font-style: italic; font-size: 0.8em; ) p:nth- de tip (3) ( culoare: roșu; ) p:nth-of-type (impar) ( culoare de fundal: #A2DED0; ) p:nth-of-type (par) ( culoare de fundal: #C8F7C5; ) h3:numai-de-tip (decor text: subliniat; )
Captură de ecran: aplicarea :first-of-type, :last-of-type, :nth-of-type și :only-of-type

Prima regulă CSS pe care o vedeți este p:first-of-type . Ce face? Selectează un element copil de tip p care primul găsite la părinte. Și nu contează locul în care se află această etichetă printre elementele de alte tipuri - primul, al doilea sau al zecelea. Aceasta este diferența dintre pseudo-clasele:first-child și:first-of-type.

A doua regulă - p:last-of-type - îi aplică stilul ultimul la un element copil de tipul p. După cum puteți vedea din codul HTML, după ultima etichetă

Există și o etichetă

, a cărui prezență nu afectează în niciun fel execuția regulii CSS (spre deosebire de opțiunea cu:last-of-child).

Următoarea regulă - p:nth-of-type(3) - schimbă culoarea fontului în roșu. Acest stil este aplicat etichetei

Care este al treilea după un element de tipul său în părinte. În captură de ecran puteți vedea că culoarea roșie este aplicată etichetei

Care este de fapt al cincilea copil al etichetei

. Dar dacă nu luăm în considerare elemente de alte tipuri, se dovedește că eticheta

Cu font roșu se află pe locul trei (printre etichetele de tipul său). Așa funcționează această regulă.

Regulile p:nth-of-type (par) și p:nth-of-type (impar) funcționează în mod similar: deoarece numele p este dat înainte de două puncte, copiii par și impar de tip p sunt selectați și pictați în culorile date. Elementele rămase sunt sărite.

Ultima regulă - h3:only-of-type - se aplică conținutului etichetei

, făcând textul subliniat. Acest stil funcționează doar datorită etichetei

este singurul element copil de tipul său. Dacă adăugați o altă etichetă la codul HTML

, stilul nu va fi aplicat.

concluzii

Selectorul de copii CSS vă permite să schimbați stilul unui element copil al unui document HTML în funcție de cine este părintele acestuia.

Folosind pseudoclase suplimentare: first-child, :last-child, :nth-child, :only-child, puteți stila elementele copil ale unui document HTML, concentrându-vă pe locația și numerotarea acestora în arborele de elemente.

Pseudo-clase: first-of-type, :last-of-type, :nth-of-type, :only-of-type vă permit să aplicați stil elementelor copil ale unui document HTML, în funcție de tipul lor, de asemenea ca numerotare în arborele de elemente .

Elementele copil sunt elemente care sunt situate direct în interiorul unui element părinte. Observați cuvintele: direct înăuntru.

Să ne uităm la un exemplu de cod html simplu:

Elemente copil.

Paragraful și în el gras element și iată-l înclinat element.

Aici grasȘi subliniat și oblic elemente.

Acest cod are două paragrafe. Există elemente inline în interiorul paragrafelor , Și . În al doilea paragraf eticheta imbricat într-o etichetă .

Acum haideți să adăugăm stiluri CSS la acest cod html folosind selectoare de copii.

Sintaxa pentru selectoarele de copii:

Selector 1 > Selector 2 (Proprietate: valoare; )

Iată codul actualizat:

Elemente copil.

Paragraful și în el gras element și iată-l înclinat element.

Aici grasȘi subliniat și oblic elemente.

Deci, să ne amintim: un element copil este un element imbricat direct în părinte. Adică, un element copil este un descendent de primul nivel. Să fim atenți la etichetă , în primul paragraf este imbricat într-o etichetă

Și în al doilea este imbricat într-o etichetă , deși este și un copil al etichetei

Prin urmare, în al doilea paragraf, regula CSS pentru selectorul de copii p>i ( culoare : albastru ; ) nu va funcționa - textul italic al celui de-al doilea paragraf nu va fi afișat în albastru.

Figura 1. Exemplul #1 la locul de muncă.

Accesați elementul html al doilea paragraf poate fi folosit folosind regula CSS: p>u>i ( culoare : albastru ; ).

Să folosim această regulă pentru a seta galben textul italic al celui de-al doilea paragraf.

Elemente copil.

Paragraful și în el gras element și iată-l înclinat element.

Aici grasȘi subliniat și oblic elemente.

Acest stil va funcționa și textul italic din al doilea paragraf va fi afișat cu galben.

Figura 2. Exemplul nr. 2 în acțiune.

Exemplu mai complex

Avem cod html:

Elemente copil.

Implicit este interpretat astfel:

Provocare: folosind CSS, transformați această listă într-un meniu orizontal.


Figura 3. Scopul schimbării.

Iată o soluție la această problemă folosind selectoare de copii:

Elemente copil.

Pentru o mai bună înțelegere a acestui exemplu, citiți mai departe.

Vlad Merjevici

Un element copil este un element care se află direct în interiorul unui element părinte. Pentru a înțelege mai bine relațiile dintre elementele documentului, să ne uităm la un mic cod (exemplul 12.1).

Exemplul 12.1. Imbricarea elementelor într-un document

HTML5 CSS 2.1 IE Cr Op Sa Fx

Lorem ipsum

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.

Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

În acest exemplu, sunt utilizate mai multe containere, care sunt amplasate unul în celălalt în cod. Acest lucru poate fi văzut mai clar în arborele elementelor, care este denumirea dată structurii relațiilor dintre etichetele documentelor (Fig. 12.1).

Orez. 12.1. Exemplu de arbore de elemente

În fig. Figura 12.1 prezintă imbricarea elementelor și ierarhia acestora într-o formă convenabilă. Aici elementul copil al etichetei

eticheta proeminentă

Cu toate acestea, eticheta nu este un copil al etichetei

, deoarece se află într-un container

Să revenim acum la selectoare. Un selector copil este unul care se află direct în interiorul elementului părinte din arborele de elemente. Sintaxa pentru utilizarea unor astfel de selectoare este următoarea.

Selector 1 > Selector 2 (Descrierea regulilor de stil)

Stilul este aplicat Selectorului 2, dar numai dacă este un copil al Selectorului 1.

Referindu-ne la Exemplul 12.1, stilul de vizualizare P > EM (culoare: roșu) ar fi setat la primul paragraf al documentului, deoarece eticheta se află în interiorul recipientului

Și nu va da niciun rezultat pentru al doilea paragraf. Și totul pentru că eticheta în al doilea paragraf se află într-un container , prin urmare condiția de cuibărit este încălcată.

În logica lor, selectoarele de copii sunt similare cu selectoarele de context. Diferența dintre ele este următoarea. Un selector de copii este stilat numai dacă este un copil direct, adică direct în interiorul elementului părinte. Pentru un selector de context, este permis orice nivel de imbricare. Pentru a clarifica despre ce vorbim, să ne uităm la următorul cod (exemplul 12.2).

Exemplul 12.2. Selectoare contextuale și pentru copii

HTML5 CSS 2.1 IE Cr Op Sa Fx

Selectoare pentru copii

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna Aliguam erat volutpat.

Rezultatul acestui exemplu este prezentat în Fig. 12.2.

Orez. 12.2. Culoarea textului setată folosind un selector de copii

A eticheta În exemplu, două reguli funcționează simultan: selector de context (tag situat în interior

) și selector de copii (tag este o filială a

). În acest caz, regulile sunt echivalente, deoarece toate condițiile pentru ele sunt îndeplinite și nu se contrazic. În astfel de cazuri, se aplică stilul prezentat în codul de mai jos, astfel încât textul italic apare cu roșu. Dacă inversați regulile și puneți DIV I mai jos, culoarea textului se va schimba de la roșu la verde.

Rețineți că, în cele mai multe cazuri, puteți evita adăugarea de selectoare copii prin înlocuirea lor cu selectoare de context. Cu toate acestea, utilizarea selectoarelor de copii extinde capacitatea de a controla stilurile de elemente, ceea ce vă permite în cele din urmă să obțineți rezultatul dorit, precum și un cod simplu și clar.

Cel mai convenabil este să utilizați acești selectori pentru elemente care au o structură ierarhică - aceasta include, de exemplu, tabele și diverse liste. Exemplul 12.3 arată modificarea aspectului unei liste folosind stiluri. Prin imbricarea unei liste în alta obținem un tip de meniu. În acest caz, titlurile sunt situate orizontal, iar setul de legături este situat vertical sub titluri (Fig. 12.3).

Orez. 12.3. Lista ca meniu

Pentru a poziționa textul pe orizontală, proprietatea stil float este adăugată la selectorul LI. Pentru a separa stilul unei liste orizontale și verticale, se folosesc selectoare pentru copii (exemplul 12.3).

Exemplul 12.3. Utilizarea selectoarelor pentru copii

HTML5 CSS 2.1 IE Cr Op Sa Fx

Selectoare pentru copii

În acest exemplu, selectoarele de copii sunt obligate să separe stilul elementelor de listă de nivel superior și listele imbricate, care servesc unor scopuri diferite, astfel încât stilul pentru acestea să nu se suprapună.

Întrebări de verificat

1. Ce culoare va fi textul cursiv aldine din cod?

Standardele de iluminare se bazează pe pe baza clasificării lucrărilor vizuale după anumite caracteristici cantitative.

Când utilizați următorul stil?

P (culoare: verde; )
B (culoare: albastru; )
I (culoare: portocaliu; )
B > I (culoare: măsline; )
P > I (culoare: galben; )

  1. Verde.
  2. Albastru.
  3. Portocale.
  4. măsline.
  5. Galben.

2. Care element este elementul părinte pentru etichetă ? </b></p> <ol><li><HEAD></li> <li><BODY></li> <li><HTML></li> <li><META></li> <li><!DOCTYPE></li> </ol><p><b>3. Pentru care etichetă este elementul<!DOCTYPE>actioneaza ca parinte?</b></p> <ol><li><HTML></li> <li><TITLE></li> <li><BODY></li> <li><HEAD></li> <li>Nu pentru orice etichetă.</li> </ol><h2>Răspunsuri</h2> <p>1. Măslin.</p> <p>3. Nu pentru orice etichetă.</p> <p>Selectorii copii CSS sunt selectori care sunt utilizați pentru a aplica stiluri elementelor numai atunci când sunt copii ai altor elemente (părinte). Asemenea selectoarelor de descendenți, selectorii de copii sunt compuși și sunt formați din selectori simpli (clase, identificatori etc.).</p> <p>Și din nou, dacă ați uitat ce sunt elementele copil, atunci să ne amintim uitându-ne la un exemplu care vă este deja familiar.</p><p> <тег1> <тег2>...</тег2> <тег3><тег4>...</тег4></тег3> </тег1> </p><p>Se spune că un element este un copil al altui element dacă se află la primul nivel de cuibărit în interiorul acestuia. În exemplul nostru<тег2>Și<тег3>sunt fiice<тег1>, A<тег4>- aceasta este fiica mea<тег3> .</p> <p>Selectorii de copii constau din doi sau mai mulți selectori simpli, despărțiți de un semn „>”, unde este specificat mai întâi părintele, apoi copilul acestuia, apoi copilul acelui copil și așa mai departe. Adică, ca și în selectoarele de descendenți, este specificată calea prin arborele documentului. Stilurile vor fi aplicate numai acelor elemente ai căror selectori sunt ultimii în listă. Sintaxa generala:</p> <p>selector1 > selector2 (</p> <p>Spațiile de pe ambele părți ale semnului „>” pot fi plasate sau nu, după dorință.</p> <p>Exemplu de utilizare a selectoarelor secundare CSS</p><p> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Selectoare pentru copii

Paragraful 1.

paragraful 2.

Rezultat în browser

Paragraful 1.

paragraful 2.

Există două lucruri la care trebuie să fii atent în acest exemplu. Există trei elemente aici, dar doar două dintre ele au chenare, umplutură și margini. De ce? Și al doilea punct. Doar primul paragraf are text albastru.

Internet Explorer 6.0 nu înțelege selectoarele pentru copii, așa că dacă îți construiești site-ul având în vedere acest browser mai vechi - ține cont de asta.

Selectori copii în tabelele HTML

Mulți începători (și uneori nu începători) în crearea de site-uri web întâmpină anumite probleme atunci când folosesc selectoare copii în tabelele HTML. Ca să înțelegeți despre ce vorbim, să ne uităm la o astfel de masă obișnuită.

Celula 1.1Celula 1.2
Celula 2.1Celula 2.2

Și acum întrebarea. Ce ai face dacă ar fi nevoie să folosești selectoare pentru copii pentru a trece de la o etichetă la celule? Dacă decideți să scrieți așa, atunci este incorect:

tabel > tr > td ( Valoarea proprietății; Valoarea proprietății; ...)

Poți ghici de ce este greșit? Nu? Cert este că ați uitat de încă un element - care, chiar dacă nu este specificat explicit, este încă prezent invizibil în fiecare tabel HTML. Pur și simplu nu are etichetele necesare de deschidere și închidere, așa că este adesea uitat de el. Apropo, da, în Tutorial HTML Nu am trecut prin ea, pentru că, în realitate, indicarea sa explicită este rareori necesară. Ei bine, cred că ați ghicit deja care va fi intrarea corectă, dar vă voi arăta oricum.

table > tbody > tr > td ( Valoarea proprietății; Valoarea proprietății; ...)

Apropo, nu numai tabelele au elemente cu etichete de deschidere opționale, există și astfel de elemente. Doar că, în practică, „problemele uitării” apar cel mai des cu tabelele, motiv pentru care v-am atras atenția asupra acestui lucru.

Teme pentru acasă.

  1. Setați pagina la dimensiunea fontului Arial 0.9em și un fundal.
  2. Scrieți mai multe titluri și paragrafe pe pagină, modificați dimensiunea și culoarea textului titlului după cum credeți de cuviință.
  3. Asigurați-vă că linkurile direct în paragrafele paginii sunt albastre fără subliniere. Dar, în același timp, dacă linkurile sunt încadrate suplimentar cu orice etichetă, de exemplu pentru cursive, atunci acestea ar trebui să fie afișate subliniat și cu roșu. Încă o dată, vă atrag atenția asupra faptului că nu trebuie să specificați stiluri de link cu fiecare etichetă de încadrare separat, faceți-o universală. Cum? Gandeste-te la asta.
  4. Creați un mic meniu în partea dreaptă a paginii și reparați-l, pentru aceasta veți avea nevoie de o proprietate și de alte câteva proprietăți care o însoțesc, vă veți da seama acolo. În același timp, lăsați meniul nu numai să rămână pe loc în fereastra browserului, dar și să nu se strecoare în conținutul paginii atunci când derulați.

Cred că ultimul punct al lecției va fi cel mai dificil pentru tine, dar nu încerca să te cufunda complet în stăpânirea poziționării imediat. Fă-ți temele. Apropo, acest element nu va funcționa în Internet Explorer 6.0, deoarece bătrânul nu înțelege poziționarea fixă.

Cele mai bune articole pe această temă