Curs Web Development
Curs HTML
Curs CSS
Curs Javascript
Curs PHP
Curs Phyton
Curs SQL
Curs SEO

Pseudoclase CSS

Ce sunt pseudoclasele

Pseudoclasele CSS sunt extensii ale selectorilor care permit aplicarea de stiluri în funcție de starea, poziția sau conținutul unui element, fără a modifica HTML-ul.

Categorii de pseudoclase

:hover

Descriere: Selectează elementul când utilizatorul trece cu mouse-ul peste el.

Utilizare: Se folosește frecvent pentru efecte vizuale, cum ar fi schimbarea culorii sau afișarea unui meniu.

Compatibilitate: Funcționează pe majoritatea elementelor, dar este cel mai des aplicat pe linkuri, butoane sau imagini.

Exemplu: Când treci cu mouse-ul peste linkul de mai jos, culoarea se schimbă.

🔧 Exemplu: :hover

:focus

Descriere: Se aplică când un element primește focus, de obicei prin click sau navigare cu tastatura (Tab).

Utilizare: Este util pentru a evidenția câmpurile de formular active.

Compatibilitate: Se aplică pe elemente care pot fi focusate: input, textarea, button, link.

Exemplu: Când dai click pe inputul de mai jos, se schimbă stilul.

🔧 Exemplu: :focus

:active

Descriere: Se aplică în momentul în care un element este activat, adică în timp ce este apăsat.

Utilizare: Poți crea efecte vizuale pentru butoane sau linkuri în momentul interacțiunii.

Compatibilitate: Funcționează pe elemente interactive: butoane, linkuri, inputuri.

Exemplu: Apasă pe butonul de mai jos și observă schimbarea.

🔧 Exemplu: :active

:visited

Descriere: Se aplică pe linkuri care au fost deja accesate de utilizator.

Utilizare: Este util pentru a diferenția vizual linkurile vizitate de cele nevizitate.

Compatibilitate: Se aplică doar pe elemente <a> cu atribut href.

Exemplu: După ce accesezi linkul de mai jos, culoarea se va schimba.

🔧 Exemplu: :visited

:checked

Descriere: Se aplică pe elemente de tip checkbox sau radio care sunt bifate.

Utilizare: Este folosit pentru a stiliza elementele selectate în formulare.

Compatibilitate: Se aplică pe <input type="checkbox"> și <input type="radio">.

Exemplu: Când bifezi caseta de mai jos, se schimbă stilul.

🔧 Exemplu: :checked

:link

Descriere: Se aplică pe linkuri care nu au fost încă accesate de utilizator.

Utilizare: Este folosit pentru a stiliza linkurile nevizitate, oferind un aspect distinct față de cele deja accesate.

Compatibilitate: Se aplică doar pe elemente <a> cu atribut href.

Exemplu: Linkul de mai jos va avea un stil diferit până când este accesat.

🔧 Exemplu: :link

Pseudo-clasele de structură

Pseudo-clasele de structură permit selectarea elementelor în funcție de poziția lor în arborele DOM sau de relația cu alte elemente. Sunt utile pentru a aplica stiluri fără a modifica HTML-ul, bazându-te doar pe poziționare și tipologie.

:first-child

Descriere: Selectează primul copil al unui element părinte.

Utilizare: Este util pentru a evidenția sau stiliza primul element dintr-o listă, secțiune sau grup.

Compatibilitate: Funcționează pe orice element care este primul copil în cadrul părintelui său.

Exemplu: Primul paragraf din containerul de mai jos va fi evidențiat.

🔧 Exemplu: :first-child

:last-child

Descriere: Selectează ultimul copil al unui element părinte.

Utilizare: Este util pentru a aplica stiluri speciale ultimului element dintr-un grup, listă sau secțiune.

Compatibilitate: Funcționează pe orice element care este ultimul copil în cadrul părintelui său.

Exemplu: Ultimul paragraf din containerul de mai jos va fi evidențiat.

🔧 Exemplu: :last-child

:nth-child()

Descriere: Selectează elementele aflate pe o anumită poziție în cadrul părintelui, pe baza unui index numeric sau expresie.

Utilizare: Este extrem de flexibil — poți selecta al doilea element, fiecare al treilea, sau chiar poziții pare/impare.

Compatibilitate: Funcționează pe orice element care are o poziție clară în cadrul părintelui său.

Exemplu: Al doilea paragraf din containerul de mai jos va fi evidențiat.

🔧 Exemplu: :nth-child(2)

:nth-of-type()

Descriere: Selectează elementele aflate pe o anumită poziție în cadrul părintelui, dar doar dintre cele de același tip.

Utilizare: Este util când ai mai multe tipuri de elemente în același container și vrei să stilizezi doar al n-lea element de un anumit tip.

Compatibilitate: Funcționează pe orice element care are frați de același tip în cadrul părintelui.

Exemplu: Al doilea paragraf (nu al doilea copil!) din containerul de mai jos va fi evidențiat.

🔧 Exemplu: :nth-of-type(2)

:only-child

Descriere: Selectează un element care este singurul copil al părintelui său.

Utilizare: Este util pentru a aplica stiluri speciale atunci când un element nu are frați.

Compatibilitate: Funcționează pe orice element care este singurul copil în cadrul părintelui.

Exemplu: Paragraful de mai jos va fi evidențiat doar dacă este singurul copil al containerului.

🔧 Exemplu: :only-child

:not()

Descriere: Selectează toate elementele care nu corespund selectorului specificat.

Utilizare: Este extrem de util pentru a exclude anumite elemente dintr-un set fără a le modifica direct.

Compatibilitate: Funcționează pe orice element HTML, în combinație cu orice selector valid.

Exemplu: Toate paragrafele care nu au clasa .exclus vor fi evidențiate.

🔧 Exemplu: :not()

:empty

Descriere: Selectează elementele care nu conțin niciun nod copil — nici text, nici alte elemente.

Utilizare: Este util pentru a evidenția sau ascunde elementele goale, cum ar fi paragrafele necompletate sau div-urile fără conținut.

Compatibilitate: Funcționează pe orice element HTML care este complet gol.

Exemplu: Paragraful gol din containerul de mai jos va fi evidențiat.

🔧 Exemplu: :empty

Pseudo-clasele de stare

Pseudo-clasele de stare permit selectarea elementelor în funcție de starea lor actuală — cum ar fi dacă sunt activate, dezactivate, valide sau țintite. Sunt esențiale pentru formulare și interacțiuni dinamice.

:disabled

Descriere: Selectează elementele care sunt dezactivate și nu pot fi utilizate de către utilizator.

Utilizare: Este util pentru a stiliza câmpurile sau butoanele inactive, oferind un indiciu vizual clar.

Compatibilitate: Funcționează pe elemente de formular precum <input>, <button>, <select> etc.

Exemplu: Butonul dezactivat de mai jos va fi evidențiat.

🔧 Exemplu: :disabled

:enabled

Descriere: Selectează elementele care sunt active și pot fi utilizate de către utilizator.

Utilizare: Este util pentru a evidenția câmpurile sau butoanele funcționale dintr-un formular.

Compatibilitate: Funcționează pe elemente de formular precum <input>, <button>, <select> etc.

Exemplu: Butonul activ de mai jos va fi evidențiat.

🔧 Exemplu: :enabled

:target

Descriere: Selectează elementul care corespunde fragmentului din URL (adică partea după #).

Utilizare: Este util pentru a evidenția sau modifica stilul unui element atunci când este accesat direct printr-un link intern.

Compatibilitate: Funcționează pe orice element HTML care are un id ce poate fi referit în URL.

Exemplu: Când dai click pe linkul de mai jos, secțiunea țintită va fi evidențiată.

Exemplu: :target

:valid

Descriere: Selectează elementele de formular care au un conținut valid conform regulilor HTML5.

Utilizare: Este util pentru a evidenția câmpurile completate corect, oferind feedback vizual pozitiv.

Compatibilitate: Funcționează pe elemente precum <input>, <textarea>, <select> etc., care au atribute de validare (ex: required, pattern, type).

Exemplu: Câmpul valid va fi evidențiat.

Exemplu live: :valid

:invalid

Descriere: Selectează elementele de formular care nu respectă regulile de validare HTML5.

Utilizare: Este util pentru a evidenția câmpurile completate greșit, oferind feedback vizual negativ.

Compatibilitate: Funcționează pe elemente precum <input>, <textarea>, <select> etc., care au atribute de validare (ex: required, pattern, type).

Exemplu: Câmpul invalid va fi evidențiat.

Exemplu live: :invalid

:required

Descriere: Selectează elementele de formular care au atributul required.

Utilizare: Este util pentru a evidenția câmpurile care trebuie completate înainte de trimiterea formularului.

Compatibilitate: Funcționează pe elemente precum <input>, <textarea>, <select> etc.

Exemplu: Câmpul obligatoriu va fi evidențiat.

Exemplu live: :required

:optional

Descriere: Selectează elementele de formular care nu au atributul required.

Utilizare: Este util pentru a evidenția câmpurile opționale, oferind utilizatorului un indiciu vizual că completarea lor nu este obligatorie.

Compatibilitate: Funcționează pe elemente precum <input>, <textarea>, <select> etc.

Exemplu: Câmpul opțional va fi evidențiat.

Exemplu live: :optional

Pseudo-clasele avansate

Pseudo-clasele avansate extind puterea CSS-ului modern, permițând selecții complexe, condiționale și optimizate. Acestea oferă un control mai precis asupra stilizării, fără a fi nevoie de JavaScript sau modificări suplimentare în HTML.

:has()

Descriere: Selectează elementele care conțin un anumit descendent sau care îndeplinesc o condiție internă.

Utilizare: Este util pentru a aplica stiluri pe un element părinte în funcție de ce conține. De exemplu, poți evidenția un <div> care conține un <img> sau un <input:checked>.

Compatibilitate: Funcționează doar în browsere moderne (Chrome, Edge, Safari). Nu este suportat în Firefox (la momentul redactării).

Exemplu: Evidențiază un <div> care conține un buton.

Exemplu live: :has()

:is()

Descriere: Simplifică scrierea selectorilor complicați, grupând mai multe variante într-un singur bloc. Este util pentru a aplica același stil la mai multe tipuri de elemente fără a repeta codul.

Utilizare: Reduce redundanța și crește lizibilitatea CSS-ului, mai ales când ai stiluri comune pentru mai multe elemente sau combinații.

Compatibilitate: Suportat în toate browserele moderne.

Exemplu: Evidențiază toate titlurile <h1>, <h2> și <h3> cu același stil.

Exemplu live: :is()

:where()

Descriere: Selectează elementele care corespund oricăruia dintre selectorii specificați, dar fără să adauge specificitate. Este ideal pentru stiluri generice sau de bază care nu trebuie să concureze cu alte reguli CSS.

Utilizare: Este util pentru a aplica stiluri comune fără a afecta ierarhia de specificitate, spre deosebire de :is().

Compatibilitate: Suportat în toate browserele moderne.

Exemplu: Stilizează titlurile <h1>, <h2> și <h3> fără a crește specificitatea.

Exemplu live: :where()

Concluzie

Pseudo-clasele CSS oferă un mod elegant și eficient de a selecta și stiliza elemente în funcție de starea, poziția sau comportamentul lor. Folosite corect, ele reduc nevoia de JavaScript, cresc claritatea codului și permit interfețe mai dinamice și accesibile. Acest ghid acoperă cele mai relevante pseudo-clase, grupate tematic pentru o înțelegere rapidă și aplicabilă.


🧠 Quiz - Pseudoclase CSS

Top