Alasvetovalikoiden ja popoverien mallit
Luo saavutettavia alasvetovalikoita ja popovereita CSS-sijoittelulla ja Popover APIlla.
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.
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
- Korttikomponentti CSS-mukautetuilla ominaisuuksilla
- Modaalien ja dialogien tyylittely
- Alasvetovalikoiden ja popoverien mallit
- Välilehtikomponentti: :checked-tekniikka ja JavaScript