CSS Academy · Oppitunti

Alasvetovalikoiden ja popoverien mallit

Luo saavutettavia alasvetovalikoita ja popovereita CSS-sijoittelulla ja Popover APIlla.

Oppitunti 3/413 vaihetta

Alasvetovalikoiden ja popoverien mallit on ilmainen CSS Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu CSS Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. CSS Academy-kurssilla on yhteensä 4 oppituntia.

Popover API

HTML:n Popover API (Chrome 114+, laajasti tuettu) tarjoaa deklaratiivisen näyttämis- ja piilotuskäyttäytymisen: kohteessa käytettävän popover-määritteen ja käynnistävässä painikkeessa käytettävän popovertarget-määritteen. Perusavaamiseen ja -sulkemiseen ei tarvita JavaScriptiä. Tämä sisältää ulkopuolelta napsauttamalla sulkemisen sekä Esc-näppäimen käsittelyn.

Popover-elementtien tyylittely

Kohdistakaa popover-elementit valitsimella [popover] tai :popover-open. ::backdrop-pseudoelementtiä voi käyttää taustan himmentämiseen. Popover-elementit piirretään dialogien tavoin top layer -tasolle, joten z-index-pinoamisongelmia ei synny.

Pudotusvalikon sijoittaminen Anchor Positioningilla

CSS Anchor Positioning sijoittaa popover-elementin suhteessa käynnistimeensä ilman JavaScriptiä (Chrome 125+): käyttäkää käynnistimessä anchor-name: --btn-, popover-elementissä position-anchor: --btn-määritystä ja kohdistakaa elementti käynnistimen alapuolelle määrityksillä top: anchor(bottom); left: anchor(left).

Vararatkaisu position: absolute -menetelmällä

Ilman Anchor Positioningia käyttäkää asemoitua parent wrapper -elementtiä: säiliössä position: relative ja pudotusvalikossa position: absolute; top: 100%; left: 0. Tämä toimii eri selaimissa, mutta edellyttää, että käynnistin ja pudotusvalikko ovat sisaruksia asemoidussa säiliössä.

Pudotusvalikon CSS

Tyylitelkää pudotusvalikkolista määrityksillä position: absolute; background: var(--color-surface); box-shadow: var(--shadow-md); border-radius: var(--radius-md); padding: var(--spacing-1) 0; min-width: 200px. Valikkokohteissa käytetään sisätilaa, hover-taustaa ja koko leveyden kattavaa näyttöä.

Animointi

Animoikaa popover-elementin avautumista ja sulkeutumista @starting-style-säännöllä sekä käyttämällä transition-behavior: allow-discrete -määritystä display-ominaisuuden muutoksen animointiin. Näin CSS:llä voidaan toteuttaa popover-elementin avautumis- ja poistumisanimaatiot sen avoimen tai suljetun tilan perusteella.

Näppäimistösaavutettavuus

Pudotusvalikoiden on tuettava näppäimistöä: nuolinäppäimillä navigoidaan valikkokohteiden välillä, Enter- ja välilyöntinäppäimillä aktivoidaan kohdistettu kohde, ja Esc sulkee valikon sekä palauttaa kohdistuksen käynnistimeen. Popover API käsittelee Esc-näppäimen automaattisesti, mutta nuolinäppäimillä navigointi edellyttää JavaScriptin tapahtumankäsittelyä.

ARIA-määritykset mukautetuille pudotusvalikoille

Mukautetussa pudotusvalikossa, joka ei käytä popover APIa, lisätkää käynnistimeen aria-haspopup="listbox" ja aria-expanded, listaan role="listbox" sekä jokaiseen kohteeseen role="option" ja aria-selected. Ruudunlukijat ilmoittavat laajennetun tilan ja kohteiden määrän.

Ylivuoto ja törmäys näkymän reunoihin

Käynnistimen alapuolelle sijoitettu pudotusvalikko saattaa alareunassa ylittää näkymän rajat. Havaitkaa tämä IntersectionObserverilla tai getBoundingClientRect-metodilla ja siirtäkää pudotusvalikko käynnistimen yläpuolelle. CSS Anchor Positioning käsittelee tilanteen määrityksellä position-try-fallbacks.

Monitasoiset pudotusvalikot

Sisäkkäiset pudotusvalikot eli alivalikot lisäävät monimutkaisuutta. Sijoittakaa alivalikot pääkohteidensa oikealle puolelle. Lisätkää viive ennen piilottamista hiiren poistuessa käyttämällä CSS:n transition-delay-määritystä tai JavaScriptin aikakatkaisua, jotta alivalikot eivät sulkeudu hiiren liikkuessa vinosti.

Kosketuslaitteiden huomioiminen

Hover-käynnisteiset pudotusvalikot eivät toimi kosketuslaitteissa, koska niissä ei ole hover-tilaa. Käyttäkää kaikkialla napsautus- tai napautuskäynnistimiä. Ulkopuolelta napauttamalla sulkeminen onnistuu Popover APIn light dismiss -toiminnolla tai document-napsautusten kuuntelijalla, joka sulkee avoimet pudotusvalikot.

Tietotesti

Mitä Popover API tarjoaa automaattisesti, vaikka aiemmin siihen tarvittiin mukautettua JavaScriptiä?

Yhteenveto

Popover API ja CSS Anchor Positioning mahdollistavat deklaratiiviset, vain vähän JavaScriptiä käyttävät pudotusvalikko- ja popover-mallit. Laajemman selainyhteensopivuuden saavuttamiseksi asemoidut säiliömallit toimivat luotettavasti. Näppäimistösaavutettavuus, ARIA-määritteet, näkymän reunojen aiheuttamien törmäysten käsittely ja kosketuslaitteiden tuki viimeistelevät tuotantovalmiit pudotusvalikkokomponentit.

Aloita maksutta

Opi CSS tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
40
Oppitunnit
159

Usein kysytyt kysymykset

Onko oppitunti ”Alasvetovalikoiden ja popoverien mallit” ilmainen?

Kyllä – oppitunnin ”Alasvetovalikoiden ja popoverien mallit” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko CSS Academy-kurssin, päivitä CoddyKit PROhon. CSS Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Alasvetovalikoiden ja popoverien mallit”?

Luo saavutettavia alasvetovalikoita ja popovereita CSS-sijoittelulla ja Popover APIlla. Harjoittelet CSS Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni CSS Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin CSS Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Alasvetovalikoiden ja popoverien mallit”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä CSS Academy-oppitunnilla?

Kyllä. Jokainen CSS Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Korttikomponentti CSS-mukautetuilla ominaisuuksilla
  2. Modaalien ja dialogien tyylittely
  3. Alasvetovalikoiden ja popoverien mallit
  4. Välilehtikomponentti: :checked-tekniikka ja JavaScript
← Takaisin: CSS Academy