Kortversjonen
- En lineær gradient i CSS er et bilde nettleseren tegner langs en rett linje, skrevet med funksjonen linear-gradient() og brukt overalt et bilde godtas, vanligvis background-image.
- Uten en retning går en lineær gradient fra topp til bunn, som er det samme som 180deg, mens 0deg peker opp og vinkler dreier med klokka.
- Fargestopp uten posisjoner fordeles jevnt, og to stopp på samme posisjon gir en hard kant i stedet for en blanding.
- Flere gradienter kan legges i lag i én background-image, atskilt med komma, der den første tegnes øverst.
- Å legge til en interpolasjonsmetode som in oklch holder midten av en blanding lys i stedet for å la den bli grå.
På denne siden
En lineær gradient i CSS er et bilde nettleseren tegner langs en rett linje, og som blander fra en farge til den neste. Du skriver den med funksjonen linear-gradient() og bruker den overalt CSS godtar et bilde, oftest background-image. Den trenger ingen fil, skalerer til alle størrelser uten å bli uskarp og koster ingenting å laste ned. Den korteste nyttige versjonen er to farger: linear-gradient(#0f172a, #38bdf8) toner fra dyp marineblå øverst til himmelblå nederst.
.hero {
background-color: #0f172a; /* shown if the gradient fails */
background-image: linear-gradient(#0f172a, #38bdf8);
}linear-gradient(#0f172a, #38bdf8)Denne guiden går gjennom hver del av funksjonen i den rekkefølgen du møter dem. Vil du ha det store bildet av hvordan lineære gradienter står seg mot radielle, koniske og mesh-blandinger, start med typer gradienter.
Syntaksen til linear-gradient()
Funksjonen tar en valgfri retning, en valgfri fargeinterpolasjonsmetode og deretter en liste med minst to fargestopp. Alt er atskilt med komma bortsett fra retningen og interpolasjonsmetoden, som deler første argument.
| Del | Eksempel | Hva den gjør |
|---|---|---|
| Retning som vinkel | 135deg, 0.25turn | Setter vinkelen til gradientlinjen. 0deg peker opp, og vinkler dreier med klokka. |
| Retning som nøkkelord | to right, to top left | Peker linjen mot en side eller et hjørne av boksen. |
| Interpolasjonsmetode | in oklch, in srgb | Velger fargerommet blandingen regnes ut i. |
| Fargestopp | #38bdf8 40% | En farge, valgfritt med en eller to posisjoner langs linjen. |
| Fargehint | 30% mellom to stopp | Flytter halvveispunktet i blandingen mellom naboene. |
Hele referansen finnes på MDNs side om linear-gradient(), som også dokumenterer den nøyaktige grammatikken fra CSS Images-spesifikasjonen.
Gradientvinkler og retningsnøkkelord
Vinkler følger et kompass: 0deg peker opp, 90deg peker til høyre, 180deg peker ned og 270deg peker til venstre. Gradienten starter på motsatt side og beveger seg mot retningen du oppgir, så 90deg går fra venstre til høyre. Du kan også skrive turn, rad eller grad, der 0.25turn tilsvarer 90deg. Standarden, når du ikke oppgir noe, er to bottom.
Hjørnenøkkelord er ikke det samme som vinkler på 45 grader. to top right heller linjen slik at midtfargen går nøyaktig mellom de to andre hjørnene, uansett formen på boksen. På et bredt banner er den linjen mye flatere enn 45deg, som alltid peker i 45 grader og ignorerer boksens form. Bruk nøkkelord når blandingen skal respektere hjørnene, og vinkler når flere elementer med ulik form må dele én retning. Mer om valg av retninger finner du i gradientvinkler.
Fargestopp, posisjoner og hint
Stopp uten posisjoner fordeles jevnt, så tre farger havner på 0 %, 50 % og 100 %. Gi et stopp en posisjon i prosent eller en lengde for å flytte det. Gi det to posisjoner, så holder fargen seg heldekkende mellom dem. Sett en enslig prosent mellom to stopp, så blir den et hint: punktet der blandingen når sin halvveisfarge, som gjør at den ene siden av overgangen går raskere enn den andre.
/* even spacing */
background-image: linear-gradient(90deg, #0c4a6e, #22d3ee, #f0f9ff);
/* a hint: the midpoint arrives early, at 20% */
background-image: linear-gradient(90deg, #0c4a6e, 20%, #22d3ee);
/* two positions: cyan holds solid from 35% to 65% */
background-image: linear-gradient(90deg, #0c4a6e, #22d3ee 35% 65%, #f0f9ff);Harde stopp til striper og delinger
Når to stopp deler posisjon, er det ikke rom for å blande, så du får en skarp kant. Nettlesere klemmer også et stopp som kommer tidligere enn det før, noe som gir en nyttig snarvei: #f97316 50%, #1e293b 0 betyr at den andre fargen starter nøyaktig der den første slutter. Gjenta ideen med repeating-linear-gradient(), så har du striper.
Å legge flere gradienter i lag i én bakgrunn
background-image godtar en kommaseparert liste, og det første bildet males øverst. Lagene skinner bare gjennom hverandre der de er gjennomsiktige, så de øverste gradientene toner vanligvis ut til transparent. Moderne nettlesere blander i forhåndsmultiplisert alfa, så å tone ut til transparent drar ikke lenger et grått skjær inn i fargen slik det en gang gjorde. Kombiner lag med background-size og background-repeat når et lag bare skal dekke en del av boksen.
.card {
background-color: #111827;
background-image:
/* top: a soft sheen across the upper third */
linear-gradient(180deg, rgb(255 255 255 / 0.12), transparent 35%),
/* bottom: the colour itself */
linear-gradient(135deg, #312e81, #7c3aed 55%, #db2777);
}Lagdeling er også grunnlaget for rikere effekter: lagdelte radielle glød lager en mesh-gradient i CSS, og et tynt støylag oppå skjuler trinndeling, som forklart i gradientbanding.
Jevnere blandinger med fargeinterpolasjon
Når hver farge er skrevet i et eldre format som hex, rgb() eller hsl(), blander nettleseren i sRGB for bakoverkompatibilitet. sRGB-blandinger mellom fjerne fargetoner går gjennom sløve, gråaktige midtpartier: blått til gult er det klassiske tilfellet. Å legge til in oklab eller in oklch ber om et perseptuelt fargerom, som holder midten lysere og jevnere. Den egne guiden om OKLCH-gradienter i CSS tar for seg fargetoneretninger og reserver.
Unngå
- Lange blandinger mellom motsatte fargetoner i vanlig sRGB
to top rightnår flere kort med ulik form må dele én retning- Å tone ut til
whitenår du mener å tone ut; bruktransparent - Veldig myke, mørke, brede blandinger uten korn, som får bånd på mange skjermer
Gjør
- Legg til
in oklcheller et midtstopp for å holde blandinger livlige - Bruk én vinkel, som
135deg, for et helhetlig system - Tone lag ut til
transparentså det under vises - Legg et svakt støylag over store mørke gradienter
Nettleserstøtte og reserver
linear-gradient() virker uten prefiks i alle gjeldende nettlesere, så de gamle -webkit--versjonene kan bort. Interpolasjonsmetoder, stopp med to posisjoner og hint er nyere. Sjekk caniuse for detaljene. Det tryggeste mønsteret er en flat background-color først, deretter gradienten, og så en eventuell forbedret versjon i en senere deklarasjon, som eldre nettlesere hopper over fordi de ikke kan tolke den.
.banner {
background-color: #1e3a8a;
background-image: linear-gradient(90deg, #1e3a8a, #f59e0b);
/* browsers that understand interpolation methods use this line */
background-image: linear-gradient(90deg in oklch, #1e3a8a, #f59e0b);
}Vil du heller starte fra en blanding som allerede har karakter enn å justere stopp for hånd, sparer en gradientgenerator eller et bibliotek med ferdige bakgrunner tid. Uansett, behold koden: en gradient i CSS forblir skarp i alle størrelser og veier noen få byte.
Spørsmål folk stiller
Hvordan lager jeg en lineær gradient i CSS?
Sett background-image: linear-gradient(retning, farge1, farge2) på et element, for eksempel linear-gradient(90deg, #0f172a, #38bdf8). Legg til en background-color før den som reserve.
Hva er standardretningen til en lineær gradient i CSS?
Topp til bunn, det samme som to bottom eller 180deg. Den første fargen vises øverst og den siste nederst.
Hvordan lager jeg en hard linje i en lineær gradient?
Gi to nabostopp samme posisjon, som #f97316 50%, #1e293b 50%, eller bruk 0 som andre posisjon så den klemmes til forrige stopp.
Hvorfor ser midten av gradienten min grå ut?
Hex-farger blander i sRGB som standard, noe som demper midtpunktet mellom fjerne fargetoner. Legg til in oklch eller in oklab etter vinkelen, eller sett inn et lysere midtstopp.
Er 45deg det samme som to top right?
Bare på et kvadrat. 45deg peker alltid i 45 grader, mens to top right justerer vinkelen så midtfargen går mellom de to andre hjørnene av boksen.
Skrevet av Gradiently
Teamet bak Gradiently, et designverktøy bygget rundt Marks: levende gradienter som gjør at alt du designer ser ut som ditt.
Se profilen vår


