Skip to content

Alt om WordPress, webutvikling — og mer til

🎨 Tilpasset rullefelt i CSS: fra W3C-standard til WebKit-gradienter

🎨 Tilpasset rullefelt i CSS: fra W3C-standard til WebKit-gradienter

Den grå standardrullebjelken i nettleseren fungerer som et visittkort laget med en gratis nettsidebygger: den gjør jobben, men etterlater et middelmådig inntrykk. Det blir spesielt merkbart når hele nettstedet er pikselperfekt, skriftene er nøye valgt, fargene er polerte, og så stikker denne kantete bjelken fra Internet Explorer-tiden ut på høyre side.

Utviklere unngår ofte temaet. Ikke fordi det er vanskelig, fire linjer med CSS løser problemet. Snarere er det myter som står i veien: «fungerer bare i Chrome», «brukerne legger ikke merke til det», «det er en gimmick, ikke en produksjonsfunksjon».

I realiteten dekker W3C-standarden det grunnleggende med to egenskaper, og WebKit-pseudoelementer gir deg kontroll over hver eneste detalj, fra avrunding til gradienter. Jeg har samlet begge tilnærmingene i én veiledning: fra spesifikasjon til produksjonsklar kryssnettleser-kode du ikke trenger å skamme deg over å sette i produksjon.

💡 Rask oversikt:

  • Konfigurer rullebjelken ved hjelp av scrollbar-width og scrollbar-color: to linjer, full kryssnettleser-kompatibilitet, ingen prefikser.
  • Mestre ::-webkit-scrollbar og dens etterkommere for finmasket kontroll over spor, tommel og hjørner.
  • Bygg en kryssnettleser-løsning: standarden for Firefox, pseudoelementer for Chrome/Safari/Edge, ingen konflikter.
  • Gå gjennom vanlige feil: spesifisitet, universell utforming, manglende knapper, fallgruver i mobilnettlesere.

Hvorfor style rullebjelken

Det første og viktigste argumentet er visuell helhet. Se for deg en mørk landingsside med neonlys-aksenter og en lysende hvit rullebjelke på høyre side. Eller et lyst minimalistisk nettsted der rullebjelken er det eneste elementet som bryter fargepaletten. Teknisk sett ikke en feil, men det ser uferdig ut.

Det andre poenget er merkevarebygging. En farget rullebjelke blir en del av det visuelle språket: en grønn tommel for en leveringstjeneste for sunn mat, oransje for en bookingplattform. En liten detalj som forsterker assosiasjonen uten ekstra bannere og popups.

For det tredje, oppmerksomhetsstyring. En tynn, halvgjennomsiktig rullebjelke stjeler ikke fokus fra innholdet. På lange landingssider spiser ikke en smal bjelke visuelt opp dyrebare breddepiksler, og på mobile oppsett med sidemarger teller hver piksel.

Og hovedpoenget: dette er ikke et triks for nerder. Egenskapene scrollbar-width og scrollbar-color er en del av spesifikasjonen CSS Scrollbars Styling Module Level 1 og støttes av alle aktuelle nettlesere. Ifølge data fra Can I Use fra juni 2026 overstiger dekningen for standardegenskapene 95% av brukerne, epoken med leverandørprefikser for rullebjelker er over.

Standardtilnærming: scrollbar-width og scrollbar-color

Den enkleste og mest pålitelige metoden. To egenskaper uten prefikser, tydelig syntaks, fungerer i Firefox, Chrome, Edge og Safari.

Grunnleggende syntaks

1body {
2 scrollbar-width: thin;
3 scrollbar-color: #4a90d9 #f0f0f0;
4}

Den første verdien i scrollbar-color er tommelfargen, den andre er sporfargen. Egenskapen scrollbar-width aksepterer tre verdier:

  • auto, standard bredde (rundt 17 piksler på Windows, 15 piksler på macOS med mus);
  • thin, tynn rullebjelke (omtrent 8 piksler);
  • none, skjul rullebjelken helt (rulling fungerer fortsatt, men brukeren forstår kanskje ikke at innholdet kan rulles, bruk med forsiktighet).

Eksempel for mørkt tema

1html {
2 scrollbar-width: thin;
3 scrollbar-color: #555 #1e1e1e;
4}

Resultat: et mørkt spor som matcher bakgrunnsfargen og en grå tommel. Ingenting bryter paletten, to linjer med kode.

Standardens begrensninger

Spesifikasjonen er bevisst minimalistisk: du kan ikke angi kantavrunding, skygger, gradienter eller hover-effekter. Dette er et kompromiss mellom tilpasning og bevaring av brukervennlighet, en altfor ikke-standard rullebjelke bryter den velkjente interaksjonsmodellen. Hvis standardsettet ikke er nok, koble til WebKit-pseudoelementer.

Finjustering gjennom::-webkit-scrollbar

Settet med ::-webkit-scrollbar-*-pseudoelementer er ikke en del av W3C-standarden, men støttes av WebKit- og Blink-nettlesere: Chrome, Edge, Safari, Opera, Brave, Arc. Dekningen utgjør ifølge Can I Use-statistikk det store flertallet av desktop-brukere.

Rullebjelkens arkitektur i WebKit

En nettlesers rullebjelke består av syv deler, hver med sitt eget pseudoelement:

Pseudoelement

Hva det stiler

::-webkit-scrollbar

Hele rullebjelken (bredde, bakgrunn)

::-webkit-scrollbar-track

Sporet (bakgrunnsstripen)

::-webkit-scrollbar-track-piece

Delen av sporet som ikke er dekket av tommelen

::-webkit-scrollbar-thumb

Tommelen (den dragbare delen)

::-webkit-scrollbar-button

Pilknappene i endene

::-webkit-scrollbar-corner

Hjørnet mellom horisontal og vertikal rullebjelke

::-webkit-resizer

Endringselementet i hjørnet

I praksis løses de aller fleste oppgaver med tre: scrollbar, track og thumb. Resten er for spesifikke designløsninger.

Eksempel: pen rullebjelke for en blogg

1::-webkit-scrollbar {
2 width: 6px;
3}
4
5::-webkit-scrollbar-track {
6 background: transparent;
7}
8
9::-webkit-scrollbar-thumb {
10 background: #c1c1c1;
11 border-radius: 3px;
12}
13
14::-webkit-scrollbar-thumb:hover {
15 background: #a0a0a0;
16}

Seks piksler bred, gjennomsiktig spor (usynlig uten rulling), avrundet tommel med mørkere farge ved hover. Rullebjelken roper ikke om seg selv, men ser moderne ut.

Eksempel med gradient for en landingsside

1::-webkit-scrollbar {
2 width: 8px;
3}
4
5::-webkit-scrollbar-track {
6 background: #1a1a2e;
7 border-radius: 4px;
8}
9
10::-webkit-scrollbar-thumb {
11 background: linear-gradient(180deg, #e94560, #0f3460);
12 border-radius: 4px;
13 border: 1px solid #16213e;
14}
15
16::-webkit-scrollbar-thumb:hover {
17 background: linear-gradient(180deg, #ff6b81, #1a508b);
18}

Vertikal gradient på tommelen, mørkt spor, tynn kantlinje for å skille fra bakgrunnen. Tre ekstra linjer til grunnkoden, siden føles annerledes.

Skjule rullebjelken uten å miste rullefunksjon

Klassisk teknikk for modale vinduer og burgermenyer:

1.hide-scrollbar {
2 overflow-y: scroll;
3 scrollbar-width: none;
4}
5
6.hide-scrollbar::-webkit-scrollbar {
7 display: none;
8}

Beholderen forblir rullbar, men bjelken forsvinner både i Firefox (scrollbar-width: none) og i WebKit-nettlesere (display: none på selve ::-webkit-scrollbar).

Kryssnettleser-løsning

Kombiner standarden og pseudoelementene i én blokk, dekningen er nesten komplett:

1/* W3C standard — Firefox, modern Chrome/Edge/Safari */
2html {
3 scrollbar-width: thin;
4 scrollbar-color: #888 #f1f1f1;
5}
6
7/* WebKit pseudo-elements — detailed styling for Chrome/Safari/Edge */
8::-webkit-scrollbar {
9 width: 8px;
10}
11
12::-webkit-scrollbar-track {
13 background: #f1f1f1;
14 border-radius: 4px;
15}
16
17::-webkit-scrollbar-thumb {
18 background: #888;
19 border-radius: 4px;
20}
21
22::-webkit-scrollbar-thumb:hover {
23 background: #555;
24}

Rekkefølgen er viktig: standardegenskaper først, deretter pseudoelementer. Nettlesere med standardstøtte bruker scrollbar-color og ignorerer ::-webkit-scrollbar-*, slik spesifikasjonen krever. Nettlesere uten standardstøtte bruker pseudoelementer. Ingen konflikt oppstår.

Hvor du setter inn koden

Tre alternativer, fra enkelt til fleksibelt:

  • Globalt i temaets style.css. Passer hvis rullebjelkestilen er lik for hele nettstedet. Ulempe: endringer går tapt ved temaoppdatering.
  • I «Tilleggsstiler»-seksjonen i tilpasseren. Sti: Utseende → Tilpass → Tilleggsstiler. Trygg metode for WordPress: stiler lever i temainnstillinger og nullstilles ikke ved oppdatering.
  • Via en plugin som Code Snippets. Hvis du trenger å spesifikt sette rullebjelke for bestemte sider via CSS-klasser.

I et child theme kobles stiler gjennom en separat fil via wp_enqueue_scripts med wp_head-hooken.

Vanlige feil ved styling

Glemt kryssnettleser-kompatibilitet. Sett bare ::-webkit-scrollbar, standardbjelken forblir i Firefox. Legg alltid til scrollbar-width og scrollbar-color som et par over i koden.

Rullebjelken for tynn. Ved 2-3 piksler bredde i ::-webkit-scrollbar blir det å klikke på tommelen med musen en finmotorisk oppgave. Spesielt kritisk på bærbare datamaskiner uten ekstern mus. Minimum komfortabel bredde er 6 piksler.

Null kontrast. Grå tommel på grått spor flyter sammen til én klump. Minimum fargekontrast mellom tommel og spor er 3:1, et WCAG 2.1 AA-krav for grensesnittelementer.

Overstyre alle pseudoelementer unødvendig. Koden svulmer opp, null effekt. I de fleste tilfeller er scrollbar, track og thumb nok. Berør knapper (button) og hjørne (corner) bare hvis designet virkelig krever det.

Stillekkasje til hele body. Innstilling på * eller html uten begrensninger stiler også interne rullebjelker: tekstfelt, kodeblokker, nedtrekkslister. For kodeforhåndsvisninger er dette nesten alltid unødvendig. Bruk klassevelgere: .custom-scrollbar-area::-webkit-scrollbar.

⁉️🤔 Ofte stilte spørsmål

Fungerer styling av rullebjelke på mobile enheter?

Nei, i mobilnettlesere vises ikke rullebjelken statisk, den dukker bare opp under rulling og styres av operativsystemet. CSS-styling gjelder ikke på iOS og Android. Men dette er ikke et problem: på mobil er rullebjelken ikke et permanent grensesnittelement. Verifisert på iOS 18 Safari og Android 15 Chrome, tilpassede stiler ignoreres, systemindikatoren brukes. På nettbrett med eksternt tastatur kan rullebjelken vises permanent, og stiler fungerer.

Hvordan style horisontal rullebjelke separat fra vertikal?

Gjennom pseudoelementer med retningsprefiks: ::-webkit-scrollbar-horizontal og ::-webkit-scrollbar-vertical. I praksis brukes de sjelden, støtten er dårligere enn for hovedpseudoelementene. Mer pålitelig å feste stiler til en spesifikk beholder med den nødvendige rulletypen gjennom en klassevelger. For horisontal rulling inne i en kodeblokk: .code-block::-webkit-scrollbar { height: 4px; } setter høyden på den horisontale rullebjelken, og .code-block::-webkit-scrollbar-thumb { background: #666; } stiler tommelen. Standard scrollbar-width og scrollbar-color fungerer likt for begge retninger.

Kan man animere rullebjelken ved hover?

Ja, gjennom transition::-webkit-scrollbar-thumb. Men transition-støtte på pseudoelementer er ufullstendig: Chrome og Edge fungerer, Safari kan glitche. Så oftere bruker man fargeendring gjennom :hover uten animasjon, mer pålitelig og ser rent ut. Fungerende variant: ::-webkit-scrollbar-thumb { transition: background 0.2s ease; } endrer tommelfargen jevnt. Ikke bruk transition på width: endring av rullebjelkebredde ved hover forskyver innhold og irriterer.

Hvordan style rullebjelke inne i en spesifikk blokk, ikke hele siden?

Bruk en sammensatt velger: .sidebar::-webkit-scrollbar { width: 5px; }, .sidebar::-webkit-scrollbar-thumb { background: #aaa; }. For standardegenskaper: .sidebar { scrollbar-width: thin; scrollbar-color: #aaa transparent; }. Fungerer for enhver beholder med overflow-y: auto eller overflow-y: scroll. Ikke bruk *-velger for rullebjelke, det vil påvirke tekstfelt og nedtrekkslister.

Er det obligatorisk å duplisere stiler for ::-webkit-scrollbar og standardegenskaper?

Ja, hvis kryssnettleser-kompatibilitet er nødvendig. Firefox bruker bare scrollbar-width og scrollbar-color, og ignorerer pseudoelementer. Chrome og Edge fra versjon 121 støtter begge mekanismene, men bruker standardegenskaper med prioritet, pseudoelementer i dem fungerer som fallback for eldre versjoner. Fire linjer med kode (to for standard, to for WebKit) dekker alle nettlesere uten konflikter.

Er det verdt å style rullebjelken i 2026

Definitivt ja, hvis du bygger et offentlig nettsted. To linjer med standard CSS gir deg en pen rullebjelke som ikke ødelegger designet og ikke krever polyfills. For landingssider og merkevareprosjekter gir WebKit-pseudoelementer individualitet uten å skade ytelsen.

Hovedregelen er ikke å overdrive. Rullebjelken forblir et funksjonelt grensesnittelement, ikke et lerret for eksperimenter. Minimum bredde 6 piksler, kontrast ikke lavere enn 3:1, ingen breddeanimasjoner, og brukeren vil ikke engang legge merke til at rullebjelken er stylet. Og det er nettopp tegnet på godt arbeid.

Hvis nettstedet er på WordPress, sleng koden inn i tilpasserens tilleggsstiler, det tar et minutt. Resultatet blir værende gjennom temaoppdateringer og vil glede øyet til alle som ruller siden til enden.