How to add gradient fill?

Gradient Over Billede i CSS

At integrere billeder i webdesign er essentielt, men nogle gange har man brug for at lægge et stilfuldt lag over billedet for at forbedre æstetikken eller funktionaliteten. En populær teknik er at anvende en farvegradient som et overlay. Dette kan gøre tekst på billedet mere læselig, skabe en bestemt stemning, eller blot tilføje et unikt designelement. Heldigvis kan dette nemt opnås ved hjælp af CSS, uden behov for billedredigeringsprogrammer. Denne artikel vil dykke ned i, hvordan du bruger CSS til at lægge gradienter over billeder, herunder forskellige metoder og teknikker.

Indholds

Grundlæggende Metode: Flere Baggrunde

Den mest ligetil måde at lægge en gradient over et baggrundsbillede er at udnytte CSS's evne til at håndtere flere baggrunde på ét enkelt element. background-egenskaben kan acceptere en kommasepareret liste af baggrunde. Browseren tegner disse lag oven på hinanden, startende med den første angivne baggrund øverst.

How do you overlay gradient on a picture?
Apply a linear gradient overlay to a background image for a smooth color transition. linear-gradient(to bottom right, rgba(255, 0, 0, 0.5), rgba(0, 0, 255, 0.5)) creates a gradient from red to blue with 50% opacity. The gradient is layered over the background image, enhancing its appearance.

For at lægge en gradient over et billede, skal du altså blot angive gradienten som den første baggrund i listen, efterfulgt af billedet. Syntaksen ser typisk således ud:

.element { background: linear-gradient(retning, farve1, farve2, ...), url('sti/til/dit/billede.jpg'); background-size: cover; /* Eller en anden passende størrelse */ background-position: center; /* Eller en anden passende position */ }

Her er linear-gradient(...) den første baggrund (øverst), og url('...') er den anden baggrund (under gradienten). Egenskaber som background-size og background-position anvendes på alle baggrunde, medmindre du angiver dem individuelt for hver baggrund (hvilket er muligt, men ofte unødvendigt for et simpelt overlay).

Det er vigtigt at bemærke, at gradienten i sig selv ikke er gennemsigtig som standard, medmindre du bruger farveformater, der understøtter gennemsigtighed, såsom rgba eller hsla. For at billedet skal kunne ses igennem gradienten, skal gradientfarverne have en alpha-værdi (gennemsigtighed) mindre end 1.

.element-med-gennemsigtighed { background: linear-gradient(to bottom, rgba(0,0,0,0.5), rgba(0,0,0,0.1)), url('sti/til/dit/billede.jpg'); background-size: cover; background-position: center; }

I dette eksempel skaber vi en sort gradient, der er 50% gennemsigtig i toppen (alpha 0.5) og næsten helt gennemsigtig i bunden (alpha 0.1), hvilket giver en fading-effekt over billedet.

Gradient Typer: Linear og Radial

CSS understøtter primært to typer af gradienter til overlays:

  • Linear Gradients: Disse overgange sker langs en lige linje. Du kan specificere retningen (f.eks. to top, to right, to bottom right) eller en vinkel (f.eks. 45deg). Du definerer farvestoppene langs denne linje. Syntaksen for linear-gradient er linear-gradient([retning|vinkel], farve1 [position], farve2 [position], ...).
  • Radial Gradients: Disse overgange udgår fra et centralt punkt og spreder sig radialt (i cirkler eller ellipser). Du kan specificere formen (circle eller ellipse) og positionen, samt farvestoppene. Syntaksen for radial-gradient er radial-gradient([form || størrelse] [at position], farve1 [position], farve2 [position], ...).

Valget mellem linear-gradient og radial-gradient afhænger helt af det ønskede visuelle resultat. En lineær gradient er god til at tone billedet ind fra en kant eller et hjørne, mens en radial gradient er velegnet til at fremhæve midten af billedet eller skabe en vignetteringseffekt.

Avanceret Kontrol med Pseudo-elementer

Mens metoden med flere baggrunde er simpel og effektiv for mange tilfælde, er der situationer, hvor det kan være mere hensigtsmæssigt at bruge et pseudo-element, som f.eks. ::before eller ::after, til at holde gradienten.

Dette er især nyttigt, hvis:

  • Dit element allerede bruger flere baggrunde til andre formål.
  • Du ønsker mere fleksibilitet i positionering eller størrelse af gradienten uafhængigt af billedet.
  • Du potentielt ønsker at animere gradienten separat.

For at bruge et pseudo-element som gradient-overlay, skal du gøre følgende:

  1. Sæt elementet, der indeholder billedet, til position: relative; (eller absolute/fixed, alt efter dit layout).
  2. Opret et ::before eller ::after pseudo-element på dette element.
  3. Giv pseudo-elementet content: ''; (selvom det er tomt, er dette nødvendigt for at pseudo-elementet bliver genereret).
  4. Positioner pseudo-elementet over billedet ved hjælp af position: absolute; og sæt dets dimensioner til at dække elementet, f.eks. top: 0; left: 0; right: 0; bottom: 0; eller width: 100%; height: 100%;.
  5. Anvend gradienten som background for dette pseudo-element.
.container { position: relative; /* Nødvendigt for at positionere pseudo-elementet relativt til containeren */ background: url('sti/til/dit/billede.jpg') center/cover no-repeat; /* Billedet som almindelig baggrund */ } .container::before { content: ''; /* Skaber pseudo-elementet */ display: block; /* Sikrer at det opfører sig som en blok */ position: absolute; /* Positionerer det frit */ top: 0; left: 0; width: 100%; height: 100%; /* Dækker hele containeren */ background: linear-gradient(to top, rgba(0,0,0,0.7), rgba(0,0,0,0)); /* Din gradient */ pointer-events: none; /* Valgfrit: Sikrer at museklik går igennem til elementet nedenunder */ }

Denne metode adskiller billedbaggrunden og gradientoverlayet fuldstændigt i CSS, hvilket kan gøre din stilkode mere organiseret og give dig finere kontrol over hvert lag.

Anvendelsesområder og Bedste Praksis

Gradient-overlays er utroligt alsidige. De kan bruges til:

  • Forbedring af tekstkontrast: Læg en mørk gradient over et lyst billede (eller omvendt) for at sikre, at tekst placeret ovenpå er let at læse. Dette er afgørende for tilgængelighed og brugeroplevelse.
  • Skabe visuel dybde: En gradient kan give billedet et mere poleret eller dramatisk udseende.
  • Integrere billeder i designet: Brug gradienter, der matcher din hjemmesides farvepalet, til at blende billeder mere harmonisk ind i det overordnede design.
  • Fading-effekter: Skab en blød overgang fra billedet til en solid farve eller gennemsigtighed i kanterne.

Når du bruger gradient-overlays, overvej følgende:

  • Kontrast: Test altid tekstkontrasten, hvis du placerer tekst ovenpå billedet med gradienten.
  • Gennemsigtighed: Eksperimenter med rgba-værdierne for at finde den rette balance mellem gradientens synlighed og billedets synlighed.
  • Responsivitet: Sørg for, at din CSS fungerer godt på tværs af forskellige skærmstørrelser. Brug af background-size: cover og pseudo-elementer med 100% bredde/højde hjælper typisk med dette.

Ofte Stillede Spørgsmål

Kan jeg bruge flere gradienter på ét billede?
Ja, absolut! Ved metoden med flere baggrunde kan du blot tilføje flere linear-gradient() eller radial-gradient() værdier, adskilt af kommaer, før url() værdien.
Hvordan laver jeg en gradient, der kun dækker en del af billedet?
Du kan justere størrelsen og positionen af gradienten ved hjælp af background-size og background-position egenskaberne, specificeret for gradienten, hvis du bruger flere baggrunde. Alternativt kan du justere dimensionerne (width/height) eller positionen (top/left/right/bottom) af pseudo-elementet, hvis du bruger den metode.
Hvad er forskellen på at bruge flere baggrunde og et pseudo-element?
Metoden med flere baggrunde er simplere, men giver mindre fleksibilitet. Pseudo-element-metoden er mere robust, især hvis du har brug for at kontrollere gradienten uafhængigt af billedet, eller hvis elementet allerede bruger baggrunde på en kompleks måde.
Kan jeg blande farverne fra gradienten og billedet på specielle måder?
Ja, du kan bruge CSS-egenskaben background-blend-mode på elementet (hvis du bruger flere baggrunde) eller på pseudo-elementet. Dette giver dig mulighed for at anvende forskellige blandingstilstande, som dem man kender fra billedredigeringssoftware (f.eks. multiply, screen, overlay, lighten, darken, etc.).

Opsummering

At lægge en gradient over et billede i CSS er en kraftfuld teknik til at forbedre dine webdesigns. Uanset om du vælger den enkle metode med flere background-værdier eller den mere fleksible tilgang med et ::before pseudo-element, giver CSS dig fuld kontrol over gradientens type, farver, retning, gennemsigtighed (via rgba/hsla) og placering. Ved at mestre disse teknikker kan du skabe visuelt tiltalende og funktionelle billedsektioner på din hjemmeside, der forbedrer brugeroplevelsen og designets æstetik.

Hvis du vil læse andre artikler, der ligner Gradient Over Billede i CSS, kan du besøge kategorien Fotografi.

Avatar photo

Franne Voigt

Mit navn er Franne Voigt, jeg er en 35-årig fotograf fra Danmark med en passion for at fange øjeblikke og dele mine erfaringer gennem min fotoblog. Jeg har arbejdet med både portræt- og naturfotografi i over et årti, og på bloggen giver jeg tips, teknikker og inspiration til både nye og erfarne fotografer. Fotografi er for mig en måde at fortælle historier på – én ramme ad gangen.

Go up