Middle
Hogyan valósítanád meg egy egyedi jelölőnégyzetet?
sobes.tech MI
Válasz az MI-től
Különböző megvalósítási módok léteznek:
- A natív bemenet elrejtése, címke stílusozása. Ez a leginkább hozzáférhető és szemantikusan helyes módszer.
- A natív bemenet teljes elrejtése,
aria-attribútumok és JavaScript használata az állapot kezelésére. Ez alaposabb hozzáférhetőségi munkát igényel.
A natív bemenet elrejtésével történő megvalósítás:
-
HTML:
// Rejtett bemenet és hozzá kapcsolódó címke használata. <input type="checkbox" id="my-checkbox" class="visually-hidden"> <label for="my-checkbox" class="custom-checkbox-label"> <span class="custom-checkbox-indicator"></span> <span class="custom-checkbox-text">Saját egyedi jelölőnégyzetem</span> </label> -
CSS:
// Osztály a natív bemenet vizuális elrejtéséhez, miközben elérhető marad a képernyőolvasók számára. .visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; border: 0; clip: rect(0 0 0 0); } // Egyedi címke stílusozása. .custom-checkbox-label { display: inline-flex; align-items: center; cursor: pointer; } // A jelölőnégyzet indikátorának (négyzet) stílusozása. .custom-checkbox-indicator { display: inline-block; width: 20px; height: 20px; border: 1px solid #ccc; margin-right: 8px; /* Távolság a szövegtől */ border-radius: 4px; background-color: #fff; transition: all 0.2s ease-in-out; } // A kijelölt állapotban lévő indikátor stílusozása. .custom-checkbox-label input:checked + .custom-checkbox-indicator { background-color: #007bff; /* Szín kiválasztáskor */ border-color: #007bff; position: relative; /* A pipának való pozícionáláshoz */ } // A "pipa" hozzáadása pseudo-elem :after segítségével. .custom-checkbox-label input:checked + .custom-checkbox-indicator:after { content: ''; position: absolute; top: 3px; left: 6px; width: 4px; height: 8px; border: solid white; border-width: 0 2px 2px 0; transform: rotate(45deg); }
Ez a megközelítés lehetővé teszi a checkbox alapértelmezett viselkedésének (checked) használatát, miközben teljes szabadságot ad a megjelenés stílusának testreszabására. A visually-hidden biztosítja a hozzáférhetőséget a segédtechnológiák számára.