HTML Academy · Lektion

selectlist-elementet

Tilpas rullemenuer med det foreslåede selectlist-element

Lektion 3 af 414 trin

selectlist-elementet er en gratis HTML Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i HTML Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. HTML Academy-kurset indeholder 4 lektioner i alt.

Den langvarige begrænsning

<select>-elementet er et af de eneste formularstyringselementer, hvis udseende ikke kan styles. Alle CSS-regler, der anvendes på det (tilpassede kanter, skrifttyper og option-styles), ignoreres af browseren, hvilket har ført til tusindvis af biblioteker til "tilpassede rullelister", der gentager den indbyggede adfærd bare for at få styles på valgmulighederne.

Hvad selectlist er

<selectlist> (også kendt som <selectmenu>) er et indbygget HTML-element, der er udviklet som en rulleliste, der kan tilpasses med CSS, i stedet for <select>. Det bruger den samme overordnede model — en udløserknap og en liste med valgmuligheder — men alle dele er eksponeret til CSS-tilpasning.

<selectlist>
  <option>Apple</option>
  <option>Banana</option>
  <option>Cherry</option>
</selectlist>

Dele, du kan style

selectlist eksponerer knappen (udløseren i lukket tilstand), listboxen (den åbne rulleliste) og valgmulighederne. CSS-pseudoelementer (::part(button), ::part(listbox)) lader dig style hver del uden at påvirke den indbyggede adfærd.

Tilpasning af valgmuligheder

Valgmuligheder i selectlist kan indeholde vilkårligt indhold — ikoner, beskrivelser og tilpassede layouts — ikke kun tekst. Browseren håndterer stadig valgslogik, tastaturnavigation og fokushåndtering, mens du frit styrer udseendet.

Indbygget adfærd bevares

selectlist bevarer alt det, <select> gør godt: tastaturnavigation (piletaster og søgning ved at skrive), meddelelser til skærmlæsere, deltagelse i formularer og fokushåndtering. Du arver den tilgængelige adfærd og kan style brugergrænsefladen ovenpå.

Tilpasset knap

Angiv en slot til udløseren: <button slot="button">Choose fruit <svg>...</svg></button>. Knappen er din at designe — erstat den indbyggede trekant med et tilpasset ikon, tilføj etiketter, og skift farver. Browseren håndterer stadig åbning og lukning.

Deltagelse i formularer

selectlist deltager i formularafsendelse ligesom select: Den har en name-attribut og en value-værdi og sendes med formularen. Håndteringen på serversiden er identisk. Det er en direkte erstatning på markup-niveau i de fleste tilfælde, hvor select bruges.

Browserunderstøttelse

selectlist er en funktion på et tidligt udviklingsstadie. I 2026 leveres den i Chromium-baserede browsere bag flag eller i begrænset form. Firefox og Safari understøtter den endnu ikke. Brug i produktion kræver en reserve med et almindeligt <select> til browsere uden understøttelse.

Hvor svært er det at lave en polyfill

Det er svært at lave en fuldt tilgængelig tilpasset rulleliste, der matcher den indbyggede adfærd — fastholdelse af fokus, tastaturnavigation, integration med skærmlæsere og deltagelse i formularer. Biblioteker som Downshift, Combobox og react-aria udfører dette arbejde med tusindvis af kodelinjer. selectlist erstatter alt det med ét element.

Hvornår bør du tage det i brug

Til interne apps eller udrulninger, der kun bruger Chromium, sparer selectlist betydelige mængder kode allerede i dag. Til offentlige websites med et bredt publikum bør du vente på understøttelse i Firefox og Safari eller bruge et wrapper-bibliotek, der anvender selectlist, hvor det understøttes, og ellers falder tilbage til en brugerdefineret React/Vue-rullemenu.

Plan for udskiftning

Når selectlist bliver tilgængeligt overalt, kan du forvente, at en lang række biblioteker til brugerdefinerede rullemenuer bliver udfaset eller reduceret til tynde indpakninger omkring det indbyggede element. Følg standardiseringsprocessen; API'et har gennemgået revisioner og kan fortsat udvikle sig, før den endelige standardisering.

Konsekvenser for design

Designere kan nu specificere pixelperfekte rullemenuer uden forbehold som "Her er designet, men rullemenuen kommer til at se anderledes ud i browseren". selectlist fjerner en af de ældste visuelle uoverensstemmelser mellem designskitser og den HTML, der leveres.

Videnstjek

Hvorfor er selectlist-elementet vigtigt — hvilken begrænsning ved det indbyggede