✨ Achtergronden & effecten
Home / CSS-track / Les 9

✨ Achtergronden & effecten

Les 9 van 12 · ~25 min · CSS-track

Stap 1 van 7

Na lay-out komt sfeer. Met achtergronden, schaduwen, opacity en filters maak je een pagina visueel aantrekkelijk. In deze les leer je de tools die het verschil maken tussen "het werkt" en "het ziet er professioneel uit."

background: kleur en afbeelding

.element {
  /* Kleur */
  background-color: #1e293b;
  background-color: rgba(0, 0, 0, 0.5); /* semi-transparant */

  /* Afbeelding */
  background-image: url('foto.jpg');
  background-size: cover;      /* vul het element, kan bijsnijden */
  background-size: contain;    /* pas volledig in, kan witruimte laten */
  background-size: 100% 100%;  /* rek uit */
  background-position: center center; /* standaard */
  background-position: top left;
  background-repeat: no-repeat; /* standaard herhaalt het */
  background-repeat: repeat;

  /* Shorthand (volgorde: image position/size repeat color) */
  background: url('foto.jpg') center/cover no-repeat #1e293b;

  /* Afbeelding scrolt mee of staat vast */
  background-attachment: scroll; /* standaard */
  background-attachment: fixed;  /* parallax-effect */
}
gradient
pattern
rgba

Gradiënten

Gradiënten zijn technisch gezien afbeeldingen — je gebruikt ze als background-image.

/* Lineair: richting + kleuren */
background-image: linear-gradient(to right, #3b82f6, #8b5cf6);
background-image: linear-gradient(135deg, #06b6d4, #3b82f6);
background-image: linear-gradient(to bottom, #fff, transparent);

/* Met tussenstops */
background-image: linear-gradient(to right, #f59e0b, #ef4444 50%, #8b5cf6);

/* Radiaal (vanuit een punt) */
background-image: radial-gradient(circle, #3b82f6, #1e1b4b);
background-image: radial-gradient(ellipse at top, #06b6d4 0%, transparent 70%);

/* Conic (als een taartdiagram) */
background-image: conic-gradient(from 0deg, #f59e0b, #ef4444, #3b82f6, #f59e0b);

linear-gradient(135deg, #06b6d4, #3b82f6)

linear-gradient(to right, #f59e0b, #ef4444, #8b5cf6)

radial-gradient(circle, #3b82f6, #1e1b4b)

conic-gradient(#f59e0b, #ef4444, #3b82f6, #f59e0b)

border-radius & box-shadow

border-radius

border-radius: 8px;           /* alle hoeken gelijk */
border-radius: 8px 0 8px 0;  /* boven-links rechts-onder / boven-rechts links-onder */
border-radius: 50%;           /* perfecte cirkel (als width = height) */
border-radius: 9999px;        /* pill-vorm (altijd volledig rond) */

/* Individueel */
border-top-left-radius: 16px;
border-bottom-right-radius: 4px;
0
8px
16px
50%

box-shadow

/* x-offset  y-offset  blur  spread  kleur */
box-shadow: 0 2px 4px rgba(0,0,0,0.1);         /* subtiel */
box-shadow: 0 10px 30px rgba(0,0,0,0.2);        /* medium */
box-shadow: 0 25px 50px -12px rgba(0,0,0,0.4); /* groot, negatieve spread */

/* Gekleurde schaduw */
box-shadow: 0 4px 20px rgba(59, 130, 246, 0.4);

/* Inset-schaduw (binnen het element) */
box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);

/* Meerdere schaduwen */
box-shadow: 0 1px 3px rgba(0,0,0,0.1), 0 10px 30px rgba(0,0,0,0.15);
subtiel
medium
gekleurd

opacity & filter

opacity

Stelt de doorzichtigheid van een heel element in (inclusief tekst en children). Voor alleen de achtergrond gebruik je rgba() of background-color met alpha.

opacity: 1;    /* volledig zichtbaar (standaard) */
opacity: 0.5;  /* 50% transparant */
opacity: 0;    /* volledig onzichtbaar (maar neemt nog ruimte in!) */
1.0
0.6
0.3

filter

Grafische effecten op het element — handig voor afbeeldingen en overlays.

filter: blur(4px);
filter: brightness(1.2);      /* 120% helderder */
filter: contrast(1.5);
filter: grayscale(100%);      /* zwart-wit */
filter: saturate(2);          /* extra verzadigd */
filter: drop-shadow(0 4px 8px rgba(0,0,0,0.3));

/* Combineren */
filter: brightness(0.8) saturate(1.5);
backdrop-filter — hetzelfde als filter maar op wat achter het element staat. Hiermee maak je een "frosted glass"-effect:
backdrop-filter: blur(12px);

Meerdere achtergronden & text-shadow

Meerdere achtergronden stapelen

Je kunt meerdere background-image-waarden combineren, gescheiden door komma's. De eerste staat bovenop.

.hero {
  background-image:
    linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)),
    url('foto.jpg');
  background-size: cover;
  background-position: center;
  /* Overlay + foto = tekst leesbaar op foto */
}

text-shadow

/* x  y  blur  kleur */
text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
text-shadow: 0 0 20px #2dd4bf;   /* glow-effect */
text-shadow: 1px 1px 0 #000, -1px -1px 0 #000; /* outline */

Glow tekst

Schaduw tekst

Oefening 1 – Hero-sectie met gradient overlay

Maak een hero-sectie met gradient, schaduw en border-radius:
body: margin 0, font-family sans-serif, background #0f172a
.hero: background-image linear-gradient(135deg, #0f172a 0%, #1e3a5f 50%, #0f4c75 100%), min-height 200px, display flex, flex-direction column, align-items center, justify-content center, padding 40px 24px, border-radius 16px, margin 20px, box-shadow 0 20px 60px rgba(0,0,0,0.4)
.hero h1: color wit, font-size 2rem, margin 0 0 12px, text-align center, text-shadow 0 2px 8px rgba(0,0,0,0.3)
.hero p: color rgba(255,255,255,0.7), margin 0, text-align center, font-size 1rem

CSS

HTML

<div class="hero">
  <h1>Welkom bij mbo-sd</h1>
  <p>Gratis lessen voor MBO
  software developers.</p>
</div>

Live voorbeeld

Oefening 2 – Kaart met schaduw en effecten

Maak een productkaart met afgeronde hoeken, schaduw en een gekleurde badge:
body: margin 0, padding 32px, background #f1f5f9, font-family sans-serif
.kaart: background wit, border-radius 20px, padding 24px, box-shadow 0 4px 6px rgba(0,0,0,0.05) 0 10px 30px rgba(0,0,0,0.1), max-width 320px
.kaart-header: background linear-gradient(135deg, #2dd4bf, #3b82f6), border-radius 12px, height 120px, margin-bottom 16px
.badge: display inline-block, background linear-gradient(to right, #2dd4bf, #3b82f6), color wit, font-size 11px, font-weight 700, padding 3px 10px, border-radius 20px, margin-bottom 8px
h3: margin 4px 0 8px, color #0f172a
p: margin 0, color #64748b, font-size 14px, line-height 1.5

CSS

HTML

<div class="kaart">
  <div class="kaart-header"></div>
  <span class="badge">Nieuw</span>
  <h3>CSS-track</h3>
  <p>Leer CSS van scratch
  in 12 lessen.</p>
</div>

Live voorbeeld

Quiz

Les 9 afgerond!

Achtergronden, schaduwen en effecten — je pagina's zien er nu professioneel uit. Volgende: animaties!

Volgende: Transitions & animaties →