Ce face appearance
Controalele de formular (<select>, checkbox-uri, butoane radio, câmpuri de căutare) sunt desenate implicit cu stilul sistemului de operare, iar multe proprietăți CSS nu au efect asupra lor. appearance: none elimină acest stil nativ și transformă controlul într-o cutie pe care o poți stiliza ca pe orice element.
Controlul își păstrează comportamentul: un checkbox cu appearance: none rămâne bifabil, focusabil și accesibil, iar :checked funcționează. Doar desenul lui (bifa, săgeata) dispare, deci trebuie să-l refaci tu.
Varianta fără prefix este suportată de toate browserele actuale; prefixul -webkit-appearance mai apare în coduri vechi și nu mai este necesar.
Valori uzuale
| Valoare | Descriere |
|---|---|
none |
Fără stil nativ; controlul poate fi stilizat complet. |
auto |
Stilul nativ al sistemului (implicit pe controale). |
menulist-button |
Pe <select>: aspect de buton cu săgeată. |
textfield |
Pe câmpuri: aspect de câmp de text simplu (ex. fără săgețile de la type=number în Firefox). |
Exemple
Exemplul 1: Select cu săgeată proprie
Săgeata nativă dispare și o înlocuim cu o imagine SVG de fundal.
.select-oras {
appearance: none;
padding: 10px 40px 10px 12px;
border: 1px solid #94a3b8;
border-radius: 8px;
background: #ffffff url("sageata-jos.svg") no-repeat right 12px center / 16px;
font: inherit;
}
Efect vizual în browser
Lista „Alege orașul” (Iași, Cluj, București) arată la fel în Chrome, Firefox și Safari: colțuri rotunjite, chenar gri și o săgeată proprie în dreapta.
Exemplul 2: Checkbox personalizat
Cutia nativă dispare; desenăm un pătrat care devine verde la bifare.
input[type="checkbox"] {
appearance: none;
width: 20px;
height: 20px;
border: 2px solid #64748b;
border-radius: 4px;
display: grid;
place-content: center;
}
input[type="checkbox"]:checked {
background: #16a34a;
border-color: #16a34a;
}
input[type="checkbox"]:checked::before {
content: "✓";
color: #ffffff;
font-size: 14px;
}
Efect vizual în browser
Opțiunea „Accept termenii” are un pătrat gri cu colțuri rotunjite; la bifare devine verde, cu o bifă albă în mijloc. Bifarea merge și din tastatură, cu Space.
Greșeli frecvente
appearance: nonefără un stil de focus și fără o stare bifată vizibilă; controlul devine invizibil sau imposibil de folosit din tastatură.- Ascunderea checkbox-ului cu
display: noneși desenarea altuia pe<label>; elementul real nu mai primește focus. Cuappearance: nonepăstrezi controlul real.
Comenzi înrudite
accent-color: Personalizează instantaneu culoarea controalelor native de formular (checkbox, radio, range, progress) dintr-o singură linie.Pseudo-clase (:hover, :focus, :active, :nth-child): Stilizează un element în funcție de starea sa (interacțiune cu mouse-ul, tastatura) sau poziția structurală în listă.field-sizing: Face ca un textarea, input sau select să-și ajusteze singur mărimea după conținut, fără JavaScript.Pseudo-elemente (::before, ::after, ::placeholder): Creează elemente decorative virtuale în pagină fără HTML suplimentar sau stilizează părți specifice ale unui element.