Kaj je to orodje?
Privzeta potrditvena polja brskalnika izgledajo drugače v vsakem brskalniku in jih je težko neposredno preoblikovati, saj njihov vgrajen izgled riše operacijski sistem, ne navaden CSS. Standardna rešitev je vizualno skriti izvirno potrditveno polje in namesto tega oblikovati sosednji element, voden s stanjem :checked polja — vnosno polje ostane popolnoma funkcionalno in dostopno, spremeni se le njegov videz.
To orodje zgradi ta vzorec za tri pogoste sloge potrditvenih polj: zaobljen kvadratek z animirano kljukico, drsno stikalo v slogu iOS in zapolnjen krog (podoben radijskemu gumbu). Klikni potrditveno polje v predogledu, da vidiš potrjeno stanje, prilagodi velikost in poudarno barvo, nato kopiraj CSS.
Vir: Selectors Level 4, W3C — specifikacija, ki definira psevdorazred :checked, na katerem temelji ta tehnika.
Zakaj ga uporabiti?
- Živ, klikljiv predogled — preklopi potrditveno polje, da natančno vidiš, kako izgledata potrjeno in nepotrjeno stanje.
- Trije različni, pogosto uporabljani slogi v enem orodju: kljukica v okvirčku, drsno stikalo in zapolnjen krog.
- Osnovni element ostaja pravi <input type="checkbox">, zato krmarjenje s tipkovnico, oddaja obrazcev in bralniki zaslona še naprej normalno delujejo.
- Prilagodljiva velikost in poudarna barva, ustvarjeni neposredno v vrednosti CSS namesto puščeni kot spremenljivke za izpolnitev.
- Ni potrebna pisava z ikonami, datoteka SVG ali slika — kljukica in gumb sta narisana z navadnimi CSS robovi in psevdoelementi.
- Brezplačno, deluje v tvojem brskalniku, brez prijave.
Kako ga uporabljati
- Izberi slog: zaobljena kljukica, drsno stikalo ali zapolnjen krog.
- Povleci drsnik velikosti, da potrditveno polje povečaš ali pomanjšaš.
- Izberi poudarno barvo — ta postane barva ozadja in roba v potrjenem stanju.
- Klikni potrditveno polje v podoknu predogleda, da potrdiš, da tako potrjeno kot nepotrjeno stanje izgledata pravilno.
- Kopiraj ustvarjen CSS v svojo slogovno predlogo in ga uporabi na katerem koli <input type="checkbox">, ovitem po enaki strukturi kot v predogledni oznaki.
Primer
Vnos
Slog: zaobljena kljukica · Velikost: 24px · Barva: oranžnaRezultat
.css-checkbox .mark {
width: 24px;
height: 24px;
border: 2px solid #f97316;
border-radius: 5px;
}
.css-checkbox input:checked + .mark {
background: #f97316;
}Vnosno polje je vizualno skrito; vidno polje je sosednji <span>, oblikovan s stanjem :checked vnosa, z majhnim zasukanim robom, narisanim kot kljukica, ko je polje potrjeno.
Zakaj skriti izvirno potrditveno polje namesto ga odstraniti
Skušnjava je preskočiti pravi <input> in zgraditi potrditveno polje zgolj iz oblikovanega <div> z upravljalnikom klikov, vendar to izgubi podporo tipkovnice, oddajo obrazca in semantiko bralnika zaslona zastonj. Vzorec, ki ga ustvari to orodje, ohrani pravi vnos potrditvenega polja v oznaki — le vizualno skrit z opacity: 0 in premeščen — tako da ga brskalnik še vedno obravnava kot pravo potrditveno polje na vsak pomemben način, sosednji element pa poskrbi za viden slog.
Trije slogi na kratko
- Zaobljena kljukica: znan vzorec kvadratka s kljukico, najpogostejši za polja obrazcev, potrditvena polja za strinjanje in sezname za več izbir.
- Drsno stikalo: deluje bolj kot takojšnja nastavitev vklop/izklop kot pa polje obrazca — najboljše za nastavitve in zaslone s preferencami, ne za sezname potrditvenih polj.
- Zapolnjen krog: minimalističen izgled, podoben radijskemu gumbu, uporaben, kadar bi kvadratek deloval vizualno pretežko ob zaobljenih elementih vmesnika v bližini.
Ujemanje z ostalim delom vmesnika
Ustvarjena poudarna barva vpliva le na potrjeno stanje — izberi tisto, ki ustreza tvoji blagovni znamki ali barvi gumbov, da potrditveno polje deluje skladno z ostalo stranjo. Kombiniraj jo z enakim border-radius, uporabljenim drugje v vmesniku, za bolj enoten videz.
Pogosta vprašanja
Ali je oblikovano potrditveno polje še vedno dostopno?
Da — osnovni element je pravi <input type="checkbox">, le vizualno skrit, ne odstranjen. Še vedno prejema fokus, se odziva na vnos s tipkovnico (preslednica za preklop) in ga bralniki zaslona pravilno napovejo, saj podporna tehnologija bere vnosni element, ne oblikovanega range poleg njega.
Zakaj CSS uporablja sosednji selektor, kot je input:checked + .mark?
Ker je vidno polje ločen element od dejanskega vnosa potrditvenega polja, CSS potrebuje način, kako oblikovati ta sosednji element glede na stanje vnosa. Kombinator + izbere element takoj za potrjenim vnosom, kar je standardna tehnika za gradnjo prilagojenih slogov potrditvenih polj in radijskih gumbov brez JavaScripta.
Ali lahko to uporabim na pravem obrazcu, ne le za demonstracijo?
Da — kopiraj ustvarjen CSS in ovij pravi vnos potrditvenega polja obrazca v enako strukturo oznak, kot je prikazano v HTML/predogledu. Ker gre še vedno za izvirno potrditveno polje, se odda z obrazcem povsem enako kot neoblikovano in deluje z obstoječo logiko preverjanja obrazca.
Zakaj je kljukica pri zaobljenem slogu animirana?
Kratka animacija povečave kljukice ob potrditvi naredi potrjeno stanje bolj namerno in odzivno kot takojšen prikaz/izginotje, kar je pogost vzorec pri dovršenih potrditvenih poljih v vmesnikih. Gre za majhno pravilo CSS keyframes, vključeno v preostalo ustvarjeno kodo.
Ali slog drsnega stikala zahteva drugačen HTML?
Ne — vsi trije slogi uporabljajo enako osnovno oznako (skrit vnos potrditvenega polja plus sosednji element za vidno obliko). Zamenjava sloga v tem orodju spremeni le pravila CSS, uporabljena na isti strukturi, tako da lahko sloge pozneje zamenjaš, ne da bi se dotaknil svojega HTML-ja.