11/05/2022
- Mestring af Baggrundsbilleder med CSS `background-size`
- Introduktion til `background-size`
- De Primære Værdier: `cover` og `contain`
- Brug af Enhedsværdier og Procenter
- En- og Tos-værdi Syntaks
- Globale Værdier: `inherit`, `initial`, `unset`
- Håndtering af Flere Baggrundsbilleder
- Praktiske Eksempler og Overvejelser
- Sammenligningstabel: `cover` vs. `contain`
- Ofte Stillede Spørgsmål (FAQ)
- Konklusion
Mestring af Baggrundsbilleder med CSS `background-size`
I webdesign er baggrundsbilleder et kraftfuldt værktøj til at skabe visuel appel og forstærke brugeroplevelsen. Men at få et billede til at se godt ud i alle situationer kan være en udfordring. Heldigvis tilbyder CSS en elegant løsning med egenskaben `background-size`. Denne egenskab giver dig fuld kontrol over, hvordan dine baggrundsbilleder skaleres og placeres inden for deres elementer. I denne dybdegående guide vil vi udforske de forskellige værdier af `background-size`, herunder de populære `cover` og `contain` muligheder, samt hvordan du kan bruge enhedsværdier og procentdele til præcis dimensionering. Vi dykker ned i, hvordan du kan skabe responsive og æstetisk tiltalende layouts ved at mestre denne essentielle CSS-egenskab.

Introduktion til `background-size`
CSS `background-size` egenskaben er designet til at specificere størrelsen på et baggrundsbillede for et element. Forestil dig, at du har et stort billede, men din container er lille, eller omvendt. `background-size` lader dig bestemme, om billedet skal strække sig for at fylde containeren helt, skaleres ned for at passe ind uden at blive beskåret, eller om du vil definere helt specifikke dimensioner. Dette er afgørende for at sikre, at dine baggrundsbilleder ser professionelle ud på tværs af forskellige skærmstørrelser og enheder, fra store desktops til små mobiltelefoner. Ved at forstå og anvende `background-size` korrekt, kan du forhindre uønsket beskæring, pixelering eller for meget tom plads, hvilket resulterer i et mere poleret webdesign.
De Primære Værdier: `cover` og `contain`
De mest almindeligt anvendte værdier for `background-size` er `cover` og `contain`. Disse nøgleord giver to distinkte metoder til at skalere dit baggrundsbillede:
1. `background-size: cover;`
Når du bruger `cover`, skalerer CSS billedet, så det fylder hele elementet. Billedets højde-bredde-forhold bevares, men dele af billedet kan blive beskåret, hvis det ikke passer perfekt ind i containerens proportioner. Dette er ideelt, når du ønsker, at baggrunden skal dække hele området uden at efterlade tomme rum, selvom det betyder, at en lille del af billedet ikke er synlig. Tænk på det som at fylde en ramme med et billede – du justerer billedet, så det dækker hele rammen, og hvis der er overskud, skærer du det væk.
2. `background-size: contain;`
Med `contain` skalerer CSS billedet, så det passer helt ind i elementet, igen med bevarelse af højde-bredde-forholdet. I modsætning til `cover` vil `contain` aldrig beskære billedet. I stedet kan der opstå tom plads i containeren, hvis billedets proportioner ikke matcher containerens. Dette er nyttigt, når det er vigtigt, at hele billedet altid er synligt, for eksempel hvis billedet indeholder vigtig tekst eller detaljer, der ikke må gå tabt. Det er som at placere et billede i en ramme, hvor du sørger for, at hele billedet er synligt, selvom der kan være hvide kanter.
Brug af Enhedsværdier og Procenter
Udover nøgleordene `cover` og `contain` giver `background-size` dig også mulighed for at definere størrelsen ved hjælp af specifikke enheder eller procenter. Dette giver en langt mere præcis kontrol over dimensionerne.
Enhedsværdier (Pixels, em, vw osv.)
Du kan angive baggrundsbilledets størrelse ved hjælp af absolutte enheder som pixels (`px`), eller relative enheder som `em` (baseret på elementets skriftstørrelse) eller `vw` (viewport width, en procentdel af browserens vinduesbredde). For eksempel:
background-size: 300px 200px;: Sætter billedets bredde til 300 pixels og højden til 200 pixels.background-size: 50em;: Sætter billedets bredde til 50 gange elementets `em`-værdi, og højden justeres automatisk for at bevare billedets proportioner.background-size: 100vw;: Sætter billedets bredde til 100% af browserens vinduesbredde.
Disse metoder er ideelle, når du har brug for at matche billedets størrelse til et specifikt layout eller designelement.
Procentværdier
Procentværdier for `background-size` er altid relative til containerens dimensioner. Dette gør dem meget nyttige for responsive designs.
background-size: 50%;: Både bredden og højden af billedet sættes til 50% af containerens bredde og højde, men billedets højde-bredde-forhold bevares. Hvis du kun angiver én procentværdi, bruges den til bredden, og højden justeres automatisk.background-size: 75% 50%;: Her sættes billedets bredde til 75% af containerens bredde og højden til 50% af containerens højde. Dette kan resultere i en ændring af billedets oprindelige proportioner, hvis de angivne procenter ikke matcher.
En- og Tos-værdi Syntaks
`background-size` kan anvendes med enten én eller to værdier, hvilket giver fleksibilitet i, hvordan du specificerer størrelsen:
En-værdi Syntaks
Når kun én værdi angives (enten en enhed eller en procentdel), bruges denne værdi til at definere bredden af baggrundsbilledet. Højden justeres automatisk for at bevare billedets oprindelige højde-bredde-forhold. Dette er en hurtig måde at skalere billedet på, mens proportionerne holdes intakte.
Eksempel:
.element { background-image: url('dit-billede.jpg'); background-size: 80%; /* Billedets bredde bliver 80% af containerens, højden justeres */ }Tos-værdi Syntaks
Med to værdier kan du definere både bredden og højden af baggrundsbilledet uafhængigt af hinanden. Værdierne kan være enheder (pixels, em) eller procenter. Den første værdi angiver bredden, og den anden angiver højden.
Eksempel:
.element { background-image: url('dit-billede.jpg'); background-size: 400px 300px; /* Bredde sat til 400px, højde sat til 300px */ } .andet-element { background-image: url('andet-billede.png'); background-size: 60% 90%; /* Bredde 60% af container, højde 90% af container */ }Brug af tos-værdi syntaks giver mulighed for at strække eller komprimere billedet, hvis det er nødvendigt, men vær opmærksom på, at dette kan forvrænge billedets udseende, hvis proportionerne ikke stemmer overens.
Globale Værdier: `inherit`, `initial`, `unset`
Udover de specifikke størrelsesværdier understøtter `background-size` også globale CSS-værdier, som kan have indflydelse på arveadfærd og nulstilling af stilarter:
background-size: inherit;: Dette får elementet til at arve `background-size`-værdien fra dets forælder-element. Hvis forælder-elementet ikke har en specifik `background-size` sat, vil det forsøge at arve videre op i hierarkiet.background-size: initial;: Nulstiller `background-size`-egenskaben til dens standardværdi, som er `auto`. Dette betyder, at billedet vises i sin oprindelige størrelse, medmindre browseren ellers bestemmer det baseret på andre faktorer.background-size: unset;: Denne værdi er lidt mere dynamisk. Hvis `background-size` er arvet fra en forælder, vil `unset` nulstille den til den arvede værdi. Hvis den ikke er arvet, vil den nulstille den til standardværdien (`auto`). Det er en måde at sikre, at elementet enten følger sin forælder eller vender tilbage til standarden.
Disse globale værdier er især nyttige i komplekse stylesheets, hvor du skal administrere arvede stilarter eller nulstille egenskaber til deres standardindstillinger.
Håndtering af Flere Baggrundsbilleder
CSS tillader dig at definere flere baggrundsbilleder for et enkelt element. Når du gør dette, anvendes `background-size` på hvert billede individuelt. Du adskiller størrelsesangivelserne for hvert billede med et komma, og rækkefølgen svarer til rækkefølgen af billederne i `background-image`-egenskaben.

Eksempel:
.element { background-image: url('billede1.jpg'), url('billede2.png'); background-size: cover, 50% 50%; /* Første billede dækker, andet billede er 50x50% */ background-position: center, top right; }Her vil `billede1.jpg` blive skaleret med `cover`, mens `billede2.png` vil blive skaleret til 50% bredde og 50% højde af containeren. Dette åbner op for kreative designmuligheder med lagdelte baggrunde.
Praktiske Eksempler og Overvejelser
Lad os se på et par scenarier, hvor `background-size` er særligt nyttigt:
Fuldkærm baggrundsbillede
For at skabe en fuldkærm baggrund, der altid dækker hele vinduet, er `background-size: cover;` ofte det bedste valg. Kombineret med `background-position: center;` sikrer du, at billedets centrum forbliver synligt, uanset hvordan det skaleres. Det er vigtigt at have et billede med tilstrækkelig opløsning til at se godt ud på store skærme.
body { background-image: url('stor-baggrund.jpg'); background-size: cover; background-position: center center; background-repeat: no-repeat; background-attachment: fixed; /* For en parallakse-effekt */ }Baggrundsbillede i et specifikt område
Hvis du har en bestemt boks eller sektion, der skal have et baggrundsbillede, kan du bruge `contain` eller specifikke dimensioner for at sikre, at billedet passer pænt ind.
.infoboks { width: 300px; height: 200px; border: 1px solid #ccc; background-image: url('ikon.svg'); background-size: contain; background-repeat: no-repeat; background-position: center; }Dette vil centrere ikonet i infoboksen og skalere det, så det passer helt ind uden at blive beskåret.
Sammenligningstabel: `cover` vs. `contain`
Her er en hurtig oversigt over forskellene mellem de to mest populære værdier:
| Egenskab | `background-size: cover;` | `background-size: contain;` |
|---|---|---|
| Formål | Fyld hele containeren | Få hele billedet til at passe ind |
| Beskæring | Mulig (dele af billedet kan være uden for containeren) | Ingen (altid synligt inden for containeren) |
| Tom plads | Sjælden (kun hvis billedets proportioner er meget anderledes end containerens) | Mulig (hvis billedets proportioner ikke matcher containerens) |
| Brugsscenarier | Fuldkærm baggrunde, hero-sektioner, visuelt dominerende baggrunde | Baggrunde med vigtig information, ikoner, logoer, der skal være fuldt synlige |
| Højde-bredde-forhold | Altid bevaret | Altid bevaret |
Ofte Stillede Spørgsmål (FAQ)
Hvordan sikrer jeg, at mit baggrundsbillede er centreret, når jeg bruger `cover`?
Du kan centrere billedet ved at tilføje `background-position: center;` ud over `background-size: cover;`. Dette sikrer, at billedets midte altid er synlig, uanset skærmstørrelsen.
Kan jeg bruge `background-size` med et GIF?
Ja, `background-size` fungerer også med animerede GIF-filer. Hele GIF'en vil blive skaleret i henhold til den angivne `background-size`-værdi.
Hvad sker der, hvis mit billede er mindre end containeren, og jeg bruger `cover`?
Hvis dit billede er mindre end containeren, og du bruger `cover`, vil CSS skalere billedet op for at dække hele containeren. Dette kan resultere i, at billedet bliver pixeliseret eller uskarpt, hvis det oprindelige billede har lav opløsning.
Hvornår skal jeg bruge procentdele i stedet for pixels?
Brug procentdele, når du ønsker, at baggrundsbilledets størrelse skal tilpasse sig dynamisk med containeren eller browserens vindue. Dette er essentielt for responsivt webdesign. Pixels er bedre, når du har brug for en fast, uforanderlig størrelse.
Hvordan fjerner jeg baggrundsbilledet?
Du kan fjerne et baggrundsbillede ved at sætte `background-image: none;` eller `background: none;` på elementet.
Konklusion
`background-size` er en uundværlig CSS-egenskab for enhver webdesigner. Ved at mestre værdierne `cover`, `contain`, enhedsværdier og procentdele kan du opnå præcis kontrol over dine baggrundsbilleder. Uanset om du sigter efter en imponerende fuldkærm baggrund eller et subtilt billede, der komplementerer dit indhold, giver `background-size` dig de værktøjer, du behøver for at skabe visuelt tiltalende og funktionelle websteder. Eksperimenter med de forskellige muligheder, og find den perfekte balance for dine designprojekter.
Hvis du vil læse andre artikler, der ligner CSS background-size: cover og contain forklaret, kan du besøge kategorien Teknologi.
