Vaiheittain parannetun mobiilivalikon rakentaminen, joka toimii ilman JavaScriptiä
Viimeisin päivitetty 21.1.2019.
Puhdas CSS off-canvas hampurilaisvalikko ei ole mikään uusi löytö. Loppujen lopuksi Chris Coyier kirjoitti tästä tekniikasta jo marraskuussa 2012.
Jos tämä on sinulle vanha temppu, odota hetki. Olen parantanut Chrisin esimerkkiä, ja ottaisin mielelläni palautetta.
Jos tämä on sinulle uutta, älä huoli. Sinulla on paljon seuraa, sillä näyttää siltä, että suuri osa webistä ei ole vielä oikeastaan tajunnut tätä.
Sen avulla rakennamme yksinkertaisen, responsiivisen off-canvas-hampurilaisvalikon pelkällä CSS:llä, joka on helppo sisällyttää omaan projektiisi. Mutta ensin…
Mitä vikaa JavaScriptissä on?
Ei mitään.
Aaron Gustafson selittää Progressive Enhancementsin merkityksen ja JavaScriptin roolin web-kehityksessä paremmin kuin minä ikinä pystyisin. Sinun kannattaa lukea hänen postauksensa. Mutta lyhyyden vuoksi yritän tiivistää sen:
”Ydintehtävät voidaan aina toteuttaa ilman JavaScriptiä.”
Ydintehtävät tulisi tehdä vakaimmalla tasolla (eli ei JavaScriptillä).
Progressiiviset parannukset eivät ole JavaScriptiä vastaan. Kyse on vain oikeiden teknologioiden omaksumisesta oikeassa kerroksessa.
”Koska on olemassa jokin mahdollisuus, että JavaScript ei toimi, meidän on aina otettava tämä mahdollisuus huomioon.”
Ei ole koskaan hyvä idea jättää huomiotta potentiaalisia käyttäjiä.
Progressiiviset parannukset on vain hyvää insinööritaitoa.
Tehdään siis mahdollisimman paljon HTML:n ja CSS:n avulla. Sitten annamme JavaScriptin tehdä taikojaan sopivammalla kerroksella – parannamme jo olemassa olevaa käyttöliittymää.
Vaihe 1: HTML
Kuten ehkä tiedät, ensimmäinen askel on aina vankan, hyvin harkitun HTML-peruskerroksen kirjoittaminen.
Huomaa: Käytän esimerkissäni Font Awesomeia kuvakkeisiin.
Näyttää melko tavanomaiselta, eikö? Meillä on:
Esimerkkimme <header>-elementti
Hampurilaisen (”fa-bars”) kuvake
Pääotsikko (tai mahdollisesti logo)
Navigaatio <nav>-elementissä
Suljin-kuvake <nav>-elementti
Suljin-kuvake
…close”) navigoinnin sisällä (tästä lisää myöhemmin)
”taustakuvake” navigoinnin jälkeen. Miksi se on ankkuritunniste? Selitän myöhemmin.
Vaihe 2: Tehdään siitä helppokäyttöisempi
Hyväksyttävyys ei saisi koskaan jäädä jälkikäteen ajateltavaksi – kuten sen jälkeen, kun olet kirjoittanut sovelluksen. Se pitäisi suunnitella alusta alkaen. Muutamien perusnäkökohtien lisääminen nyt ei ainoastaan paranna sivustosi yleistä saavutettavuutta, vaan se antaa sinulle (kehittäjälle) paremman merkinnän, jota voit hyödyntää JavaScriptissäsi!
Sen jälkeen lisäämme vielä muutaman attribuutin ja jonkin verran vain ruudunlukijalle tarkoitettua tekstiä:
Tässä on pikainen erittely kaikista näistä attribuuteista ja siitä, miten ne toimivat:
Lisäsimme uniikit ID:t, jotta voimme kohdistaa HREF:t kohteeseemme (lisää siitä, miten tämä toimii myöhemmin).
Olemme antaneet painikkeille informatiivisen merkinnän ruudunlukijoita varten käyttämällä.
Olemme piilottaneet kuvakkeet ruudunlukijoilta käyttämällä , koska ne ovat visuaalisia esityksiä, ja lisänneet vain ruudunlukijalle tarkoitetun tekstin <span class=”sr-only”>-elementeillä.
Olemme poistaneet ”taustan” tabulaatioindeksistä elementillä . Se on luonteeltaan puhtaasti visuaalinen, emmekä halua hämmentää näkövammaisia ja vain näppäimistöä käyttäviä käyttäjiämme.
Olemme lisänneet amazing-attribuutin asettaaksemme ”taustan” alkuperäisen (ja semanttisen) tilan. Ei enää roskaa – kuinka jännittävää!
Tässä on tähänastinen tulos:
Kuvio 1: Tyylitetään se!
Lähestymme tätä asiaa mobiili edellä, joten tyrmäämme mobiilin, ”hampurilaismaisen” näkymän (mielenkiintoisen osan).
Ensin saamme vain otsikon ulkoasun kuntoon (ilman vuorovaikutteisuutta):