Egy fokozatosan továbbfejlesztett, JavaScript nélkül működő mobil menü építése
Legutóbb frissítve: 2019. január 21.
A Pure CSS Off-Canvas Hamburger Menu nem új keletű felfedezés. Elvégre Chris Coyier már 2012 novemberében írt erről a technikáról.
- Ha ez egy régi trükk számodra, akkor tarts velem egy kicsit. Továbbfejlesztettem Chris példáját, és örülnék a visszajelzésednek.
- Ha ez új neked, ne aggódj. Rengeteg társaságod van, mivel úgy tűnik, hogy a web nagy része még nem igazán fogta fel.
Ezzel egy egyszerű, reszponzív off-canvas hamburger menüt fogunk építeni, csak CSS-t használva, amit könnyű lesz beépíteni a saját projektedbe. De előbb…
Mi a baj a JavaScript-szel?
Semmi.
Aaron Gustafson jobban elmagyarázza a Progressive Enhancements fontosságát és a JavaScript szerepét a webfejlesztésben, mint én valaha is tudnám. Érdemes elolvasni a bejegyzését. De a rövidsége kedvéért megpróbálom összefoglalni:
- “Az alapfeladatokat mindig el lehet végezni JavaScript nélkül.”
- Az alapfeladatokat a legstabilabb rétegen (azaz nem a JavaScripten) kell elvégezni.”
- A Progressive Enhancements nem JavaScript-ellenes. Csak arról szól, hogy a megfelelő technológiákat a megfelelő rétegen kell alkalmazni.
- “Mivel van rá némi esély, hogy a JavaScript nem fog futni, mindig számolnunk kell ezzel az eséllyel.”
- Soha nem jó ötlet figyelmen kívül hagyni a potenciális felhasználókat.
- A Progressive Enhancements csak jó mérnöki munka.
Szóval, annyit fogunk tenni, amennyit csak tudunk HTML és CSS segítségével. Aztán hagyjuk, hogy a JavaScript egy alkalmasabb rétegben tegye a dolgát – javítva a már meglévő felhasználói felületet.
1. lépés: HTML
Amint azt talán tudod, az első lépés mindig egy szilárd, jól átgondolt HTML alapréteg megírása.
Megjegyzem: példámban Font Awesome-ot használok az ikonokhoz.
Meglehetősen szabványosnak tűnik, igaz? Megvan:
- A szülő <header> elemünk
- A hamburger (“fa-bars”) ikonja
- Egy főcím (vagy esetleg egy logó)
- A navigáció egy <nav> elemben
- Egy bezáró ikon (“fa-close”) a navigáción belül (erről bővebben később)
- Egy “háttér” a navigáció után. Miért van ez egy anchor tag? Majd később elmagyarázom.
2. lépés: Tegyük elérhetőbbé
A hozzáférhetőség soha nem lehet egy utólagos gondolat – például az alkalmazás megírása után. Már a kezdetektől fogva meg kell tervezni. Néhány alapvető megfontolás mostani hozzáadása nem csak az oldalad általános hozzáférhetőségét fogja javítani, hanem neked (a fejlesztőnek) jobb jelölést biztosít, amit a JavaScriptben felhasználhatsz!
Ezek után hozzáadunk még néhány attribútumot és néhány, csak a képernyőolvasók számára elérhető szöveget:
Itt van egy gyors bontás mindezen attribútumokról és azok működéséről:
- Egyedi azonosítókat adtunk hozzá a HREF-jeink célzásához (ennek működéséről később lesz szó).
- A képernyőolvasók számára informatív feliratot adtunk a gomboknak a .
- Elrejtettük az ikonokat a képernyőolvasók elől a , mert ezek vizuális ábrázolások, és csak a képernyőolvasók számára elérhető szöveget adtunk a <span class=”sr-only”> elemekkel.
- A “hátteret” kivettük a lapozóindexből a . segítségével, ez tisztán vizuális jellegű, és nem akarjuk összezavarni a látássérült és csak billentyűzetet használó felhasználóinkat.
- A “háttér” kezdeti (és szemantikai) állapotának beállításához hozzáadtuk a csodálatos attribútumot. Nincs több szemét – milyen izgalmas!
Itt az eddigi eredmény: