Kortversjonen
- CSS-egenskapen background kan ha flere kommaseparerte lag, og det første laget i listen tegnes øverst.
- En bakgrunnsfarge kan bare settes én gang, i siste lag, og vises under alle bilder og gradienter.
- I kortformen background må background-size følge etter background-position med en skråstrek, som i center / cover.
- Et gradientlag over et bildelag i én deklarasjon er den enkleste måten å tone et bilde for lesbar tekst på.
- Bilder satt i CSS oppdages senere enn img-elementer, så et viktig toppbilde kan trenge et forhåndslastingshint.
På denne siden
En CSS-bakgrunn er en stabel av lag på ett element. Egenskapen background tar en kommaseparert liste med bilder og gradienter, med det første øverst, pluss én farge helt nederst. Det er alt du trenger til et tonet toppbilde, et mykt lys over en gradient eller tekstur over en merkevarefarge, uten ekstra elementer eller omsluttende beholdere. Resten handler om å vite hvordan kortformen leser verdiene.
Kortformen background, verdi for verdi
Kortformen setter opptil åtte enkeltegenskaper samtidig. De du utelater, tilbakestilles til standardverdiene. Det er den vanligste årsaken til feil av typen «hvor ble bakgrunnsstørrelsen av?».
background-colorHva den styrer
Vanlige verdier
#0f0b1e, oklch(20% 0.05 290)background-imageHva den styrer
Vanlige verdier
url(photo.webp), linear-gradient(…)background-positionHva den styrer
Vanlige verdier
center, top right, 50% 30%background-sizeHva den styrer
Vanlige verdier
cover, contain, 200px autobackground-repeatHva den styrer
Vanlige verdier
no-repeat, repeat, repeat-xbackground-attachmentHva den styrer
Vanlige verdier
scroll, fixed, localbackground-origin og background-clipHva den styrer
Vanlige verdier
padding-box, border-box, text.hero {
/* image | position / size | repeat | colour */
background: url("harbour.webp") center 30% / cover no-repeat #0f172a;
}Slik stables bakgrunnslag
List lagene fra øverst til nederst, atskilt med komma. Hvert lag kan ha egen posisjon, størrelse og gjentakelse, gitt i samme rekkefølge i hver enkeltegenskap. Bare siste lag kan ha en farge. Tenk på det som å lese ned gjennom en bunke kalkerpapir.
.section {
background:
radial-gradient(circle at 80% 20%, #f472b6 0%, transparent 45%),
radial-gradient(circle at 15% 85%, #38bdf8 0%, transparent 50%),
linear-gradient(160deg, #1e1b4b 0%, #0f0b1e 100%)
#0f0b1e;
}Bruk transparent i de ytterste stoppene, så lysene glir inn i det som ligger under. Se CSS-radialgradient og CSS-meshgradient for selve formene.
En gradient over et bakgrunnsbilde
Den nyttigste lagdelte bakgrunnen toner et bilde slik at ordene over blir lesbare. Sett gradientlaget først og bildet deretter. En gradient som er mørk der teksten står og klar ellers, bevarer langt mer av bildet enn et jevnt mørkt overlegg.
.hero {
background:
linear-gradient(90deg, rgb(10 12 24 / 0.85) 0%, rgb(10 12 24 / 0.4) 45%, transparent 70%),
url("terrace.webp") center / cover no-repeat
#0a0c18;
color: #f8fafc;
}Et jevnt overlegg gjør teksten lesbar ved å dempe alt like mye.
Et retningsbestemt lag mørkner bare der ordene står og lar resten av motivet være lyst.
Gradientoverlegg har flere oppskrifter, og tekst over bilder viser når du bør flytte ordene fremfor å mørkne bildet.
background-size, posisjon og gjentakelse
coverfyller boksen og beskjærer det som går utenfor. Riktig for bilder og toppfelt som går helt til kanten.containfår hele bildet innenfor og etterlater mellomrom. Riktig for logoer og illustrasjoner som ikke må beskjæres.- Kombiner
covermed en bevisstbackground-position, som50% 30%, så utsnittet beholder motivets ansikt eller produktet. - Teksturfliser trenger
repeatog en fast størrelse, for eksempel200px 200px, så kornet er likt ved alle skjermbredder. background-attachment: fixedgir et parallakseuttrykk på datamaskiner, men mange mobilnettlesere ignorerer det. Ikke gjør designet avhengig av det.
.card {
background:
url("grain.png") 0 0 / 200px 200px repeat,
linear-gradient(135deg, #7c2d12 0%, #ea580c 55%, #fdba74 100%);
}Én enkeltegenskap til fortjener plass: background-clip: text klipper bakgrunnen til bokstavenes form, og er måten gradienttekst lages i CSS på. Bruk den til store displayord, sett en ensfarget color som reserve, og se CSS-gradienttekst for hele mønsteret.
Feil du bør unngå
Unngå
- Å sette
background-sizeog deretter kortformen, som tilbakestiller den - En farge i noe annet lag enn det siste
- Ingen reservefarge, så teksten er uleselig mens bildet lastes
- Et enormt bilde til en boks som er 400 piksler bred
- Viktig innhold bare i et bakgrunnsbilde, usynlig for skjermlesere
Gjør dette
- Skriv kortformen først, deretter overstyringer med enkeltegenskaper
- Én farge, på slutten av listen
- En reservefarge nær bildets gjennomsnittstone
- Bilder tilpasset boksen, levert som WebP eller AVIF
- Meningsbærende bilder som
imgmed alternativtekst, dekor som bakgrunner
Responsive og raske bakgrunnsbilder
image-set() lar nettleseren velge mellom formater eller oppløsninger, omtrent som srcset på en img. Fordi bakgrunnsbilder først oppdages når CSS-en er tolket, kan et toppbilde komme sent. Et forhåndslastingshint i head løser det.
<link rel="preload" as="image" href="/hero-1920.avif" type="image/avif" fetchpriority="high">
<style>
.hero {
background: image-set(
url("/hero-1920.avif") type("image/avif"),
url("/hero-1920.webp") type("image/webp"),
url("/hero-1920.jpg") type("image/jpeg")
) center / cover no-repeat #0f172a;
}
</style>Ofte er den raskeste bakgrunnen helt uten bilde. Lagdelte gradienter trenger ingen nedlasting, og en liten kornflis tilfører tekstur for noen få kilobyte. Ytelse for CSS-gradienter og WebP sammenlignet med PNG og JPG dekker avveiningene. Hvis du heller vil slippe å finjustere lys og korn, gir en Mark fra Gradiently en ferdig, særegen bakgrunn i toppfeltstørrelsen 1920×1080, med samme uttrykk som de sosiale innleggene dine.
Spørsmål folk stiller
Hvordan legger jeg til et bakgrunnsbilde i CSS?
Bruk background: url("image.webp") center / cover no-repeat; på elementet, med en reservefarge til slutt i tilfelle bildet laster langsomt.
Hvordan legger jeg en gradient over et bakgrunnsbilde?
List gradienten først og bildet deretter i én background-deklarasjon, atskilt med komma. Første lag tegnes øverst.
Kan jeg bruke flere bakgrunner i CSS?
Ja. Skill lagene med komma. Hvert lag kan ha egen posisjon, størrelse og gjentakelse, og bare siste lag kan ha en farge.
Hva er forskjellen på background-size cover og contain?
cover fyller hele elementet og beskjærer det som går utenfor. contain viser hele bildet og kan etterlate tomrom rundt.
Hvorfor slutter background-size å fungere?
Kortformen background tilbakestiller alle enkeltegenskaper den ikke nevner. Sett background-size etter kortformen, eller ta den med i kortformen etter posisjonen med en skråstrek.
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