Als het om webdesign gaat, kunnen pakkende afbeeldingen het verschil maken. Afbeeldingen spelen een cruciale rol bij het creëren van een aantrekkelijke en gedenkwaardige gebruikerservaring.

Maar hoe breng je je afbeeldingen van gewoon naar buitengewoon? Hier komt afbeeldingsstyling om de hoek kijken. Met de kracht van CSS binnen handbereik kun je je creativiteit de vrije loop laten en je afbeeldingen omtoveren tot boeiende visuele elementen die een blijvende indruk achterlaten.

In dit artikel duiken we in de wereld van het stylen van afbeeldingen met CSS en verkennen we vele technieken en eigenschappen die je webdesignvaardigheden naar nieuwe hoogten zullen tillen.

Afbeeldingen toevoegen in HTML

Voordat je een afbeelding kunt stylen, moet je deze eerst toevoegen aan je HTML document. Hiervoor kun je de tag <img> gebruiken. De tag <img> is een zelfsluitende tag (er is geen sluitende tag nodig). Hij heeft een src attribuut dat de URL of het bestandspad specificeert van de afbeelding die je wilt weergeven.

<img src="image.jpg" alt="Description of the image">

Je kunt ook een absolute URL of een relatief bestandspad naar de afbeelding opgeven.

<img src="https://source.unsplash.com/tMHAmxLyzvA" alt="Boston city skyline">

Het alt attribuut staat voor alternatieve tekst en is essentieel voor toegankelijkheid. De tag <img> bevat daarnaast twee optionele attributen: width en height. Met deze attributen kun je de afmetingen van de afbeelding in pixels opgeven.

<img src="image.jpg" alt="Description of the image" width="300" height="200">

Over het algemeen wordt echter aangeraden om de attributen width en height niet te gebruiken, tenzij je specifieke afbeeldingsafmetingen moet aanhouden. In plaats daarvan kun je CSS gebruiken om de grootte van de afbeelding te regelen, wat meer flexibiliteit biedt bij responsief ontwerp.

img {
  height: 200px;
  width: 700px;
}

Styling van responsieve afbeeldingen

Het toepassen van specifieke waarden voor de attributen width en height op een afbeelding kan leiden tot ongewenste gevolgen, zoals het comprimeren of vervormen van de afbeelding. Dit is vooral het geval als de opgegeven afmetingen niet overeenkomen met de oorspronkelijke beeldverhouding van de afbeelding.

Gecomprimeerde afbeelding.
Gecomprimeerde afbeelding.

Om deze problemen te voorkomen en de juiste beeldverhoudingen te behouden, komt responsieve afbeeldingsstyling om de hoek kijken. Responsieve afbeeldingsstyling zorgt ervoor dat afbeeldingen zich aanpassen aan verschillende schermformaten, wat cruciaal is voor responsief webdesign.

Je kunt dit bereiken door de property max-width te gebruiken, die de maximale breedte van een afbeelding beperkt.

img {
  max-width: 100%;
  height: auto;
}
Responsieve afbeelding.
Responsieve afbeelding.

Je kunt ook media queries gebruiken om de styling van afbeeldingen aan te passen op basis van breakpoints van verschillende apparaten. Met media queries kun je specifieke CSS regels toepassen op basis van de schermgrootte, oriëntatie en andere kenmerken van het apparaat. Bijvoorbeeld:

@media screen and (max-width: 600px) {
  .my-image {
    max-width: 50%;
  }
}

Object-fit gebruiken om de beeldverhouding te behouden en krimpen te voorkomen

Soms zijn er scenario’s waarin je een specifieke breedte en hoogte voor een afbeelding moet opgeven. In zulke gevallen kun je de CSS property object-fit gebruiken om te bepalen hoe de afbeelding zich gedraagt binnen de opgegeven afmetingen.

Met de property object-fit kun je aangeven hoe een afbeelding in de container moet passen met behoud van de beeldverhouding. De eigenschap kan verschillende waarden aannemen, zoals:

  • fill: Deze waarde rekt de afbeelding uit of knijpt hem samen om precies in de container te passen, waardoor mogelijk vervorming optreedt.
  • contain: Deze waarde schaalt de afbeelding proportioneel om binnen de container te passen zonder bijsnijden, waardoor de beeldverhouding behouden blijft. Het zorgt ervoor dat de hele afbeelding zichtbaar is binnen de container, wat kan resulteren in lege ruimtes.
  • cover: Deze waarde schaalt de afbeelding proportioneel om de container te bedekken met behoud van de beeldverhouding. Dit kan ertoe leiden dat de randen van de afbeelding worden bijgesneden om ervoor te zorgen dat de hele container wordt gevuld.
  • none: Deze waarde past geen schalen of bijsnijden toe en de afbeelding behoudt zijn oorspronkelijke grootte, waardoor de container mogelijk overloopt.
Resultaat voor populaire object-fit stijlen.
Resultaat voor populaire object-fit stijlen.

Hier is een voorbeeld van het gebruik van de object-fit property:

img {
  width: 300px;
  height: 300px;
  object-fit: cover;
}

Afbeeldingen met afgeronde hoeken maken met CSS

Het toevoegen van afgeronde hoeken aan afbeeldingen kan ze een zachtere en visueel aantrekkelijkere uitstraling geven.

Met CSS kun je dit effect eenvoudig bereiken door de property border-radius toe te passen op de afbeelding.

Hier lees je hoe je afbeeldingen met afgeronde hoeken kunt maken:

img {
  border-radius: 10px;
}

In het bovenstaande voorbeeld stellen we de property border-radius in op 10px. Pas de waarde aan naar jouw voorkeur om de rondheid van de hoeken te regelen. Deze waarde kan de eenheden van je voorkeur gebruiken, zoals rem, percentage, enz.

Afbeelding met afgeronde hoeken.
Afbeelding met afgeronde hoeken.

Ronde afbeeldingen maken met CSS

Om je afbeeldingen perfect rond te maken, combineer je de property border-radius met gelijke breedte- en hoogtematen.

Zo maak je cirkelvormige afbeeldingen:

img {
  border-radius: 50%;
  width: 200px;
  height: 200px;
}

In het bovenstaande voorbeeld is de property border-radius ingesteld op 50%, waardoor een cirkel ontstaat door de randcurve de helft van de breedte of hoogte van de afbeelding te maken.

Je kunt ook de properties  clip-path gebruiken. Hiermee kun je een uitknippad definiëren voor een element, waardoor unieke vormen ontstaan.

Hier is een voorbeeld van een afbeelding die in een cirkel is geknipt:

img {
  clip-path: circle(50%);
  width: 200px;
  height: 200px;
}

Afbeeldingen centreren met CSS

Afbeeldingen uitlijnen in het midden van hun container is een veelgebruikte praktijk in webdesign. Er zijn veel manieren om dit te bereiken; één manier is om de property display van de afbeelding in te stellen op block en margin: 0 auto toe te passen, waarmee de afbeelding horizontaal wordt gecentreerd in de container.

img {
  display: block;
  margin: 0 auto;
  width: 700px;
}
Gecentreerde afbeelding.
Gecentreerde afbeelding.

Transparante afbeeldingen maken

Je kunt CSS gebruiken om het gewenste transparantie-effect toe te passen om een afbeelding transparant te maken. Met de property opacity kun je het transparantieniveau van een element regelen, inclusief afbeeldingen.

Een waarde van 1 staat voor volledige ondoorzichtigheid (volledig zichtbaar), terwijl 0 staat voor volledige transparantie (volledig onzichtbaar).

img {
  opacity: 0.5;
}

De opaciteit van de afbeelding in de bovenstaande code is ingesteld op 0.5, wat resulteert in een semi-transparant effect. Je kunt de waarde van de ondoorzichtigheid aanpassen om het gewenste transparantieniveau te bereiken.

Transparante afbeelding.
Transparante afbeelding.

Tekst op afbeeldingen plaatsen

Door tekst op afbeeldingen te plaatsen kun je visueel aantrekkelijke en informatieve ontwerpen maken. Om tekst bovenop een afbeelding te plaatsen, kun je een combinatie van CSS positionering en z-index gebruiken.

Hier is een voorbeeld:

 // HTML
<div class="image-container">
  <img src="https://source.unsplash.com/tMHAmxLyzvA" alt="Boston city skyline" >
  <div class="image-text">Welcome to Kinsta</div>
</div>

// CSS
.image-container {
  position: relative;
}


.image-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  color: white;
  font-size: 20px;
  font-weight: bold;
}

In de bovenstaande code dient de image-container div als container voor zowel de afbeelding als de tekstoverlay. De property position: relative wordt toegepast op de container om een positioneringscontext te maken. De klasse image-text wordt vervolgens gebruikt om de tekst absoluut binnen de container te positioneren met behulp van position: absolute en de properties top, left en transform om de tekst te centreren. De z-index property zorgt ervoor dat de tekst boven de afbeelding verschijnt en je kunt het uiterlijk van de tekst verder aanpassen met kleur, lettergrootte en lettertypegewicht.

Merk op dat de specifieke positioneringswaarden en styling kunnen worden aangepast aan je ontwerpvoorkeuren en eisen.

Afbeeldingen omdraaien: Gespiegelde effecten creëren

Afbeeldingen omdraaien kan een interessant visueel element toevoegen aan je webdesign. Of je nu een gespiegeld effect wilt creëren of een afbeelding verticaal of horizontaal wilt omdraaien, CSS biedt eenvoudige technieken om dit effect te bereiken.

Horizontaal spiegelen

Om een afbeelding horizontaal om te draaien, kun je de transform eigenschap gebruiken met de scaleX() functie. Met de waarde scaleX(-1) wordt de afbeelding langs de horizontale as omgedraaid.

img {
  transform: scaleX(-1);
}

Verticaal spiegelen

Om een afbeelding verticaal te spiegelen kun je de transform property gebruiken met de scaleY() functie. Met de waarde scaleY(-1) wordt de afbeelding langs de verticale as omgedraaid.

img {
  transform: scaleY(-1);
}

Diagonaal spiegelen

Om een diagonaal flipping-effect te maken, combineer je de functies scaleX() en scaleY() binnen de property transform.

img {
  transform: scaleX(-1) scaleY(-1);
}

In de bovenstaande code wordt de afbeelding horizontaal en verticaal gespiegeld, wat resulteert in een diagonaal omslageffect.

Horizontaal, verticaal en diagonaal omdraaien van afbeeldingen.
Horizontaal, verticaal en diagonaal omdraaien van afbeeldingen.

Filters toevoegen aan afbeeldingen: Visuele effecten verbeteren

Filters kunnen het uiterlijk van afbeeldingen veranderen, zodat je unieke visuele effecten kunt creëren. CSS biedt een reeks filterproperties die kunnen worden toegepast op afbeeldingen, waarmee je helderheid, contrast, verzadiging en meer kunt aanpassen.

Je kunt de property filter gebruiken om een filter toe te passen op een afbeelding. Deze property accepteert verschillende filterfuncties, die elk verschillende aspecten van de afbeelding wijzigen.

img {
  filter: brightness(150%);
}

In de bovenstaande code wordt de functie brightness(150%) toegepast op de afbeelding. Dit verhoogt de helderheid van de afbeelding met 150%.

Veelgebruikte filterfeatures

Hier zijn enkele veelgebruikte filterfuncties:

  • brightness(): Past de helderheid van de afbeelding aan.
  • contrast(): Wijzigt het contrast van de afbeelding.
  • saturate(): Wijzigt het verzadigingsniveau van de afbeelding.
  • grayscale(): Converteert de afbeelding naar grijswaarden.
  • blur(): Past een onscherpeffect toe op de afbeelding.
  • sepia(): Hiermee wordt een sepiatoon op de afbeelding toegepast.

Je kunt experimenteren met verschillende filterfuncties en -waarden om de gewenste visuele effecten te bereiken. Het combineren van meerdere filters kan ook meer ingewikkelde transformaties opleveren.

Hover-overlays op afbeeldingen maken

Hover-overlays op afbeeldingen kunnen interactiviteit en visuele elementen toevoegen aan je website. Wanneer een gebruiker met de muis over een afbeelding beweegt, kan er een overlay-effect worden toegepast, zoals een kleuroverlay of een tekstbijschrift.

CSS biedt verschillende technieken om hover-overlays te maken; één manier is het gebruik van CSS-overgangen. Door specifieke properties van een element te laten overgaan, kun je veranderingen wanneer je met de muis over een afbeelding beweegt vloeiend laten verlopen.

// HTML
<div class="image-container">
  <img src="image.jpg" alt="Description of the image">
  <div class="overlay"></div>
</div>

// CSS
.image-container {
  position: relative;
  display: inline-block;
}
.overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.image-container:hover .overlay {
  opacity: 1;
}

In de bovenstaande code omhult een .image-container element de afbeelding en een .overlay element. De overlay is aanvankelijk transparant (opacity: 0) en bedekt de hele afbeelding. Wanneer je met de muis over .image-container beweegt, gaat de opaciteit van .overlay over naar 1, waardoor de overlay in kleur zichtbaar wordt.

Om het gewenste visuele effect te bereiken, kun je de overlay aanpassen door de property background-color en opaciteit aan te passen.

Samenvatting

Afbeeldingen stylen met CSS opent een wereld aan creatieve mogelijkheden, waarmee je de visuele aantrekkingskracht en interactiviteit van je webpagina’s kunt verbeteren.

Houd bij het opmaken van afbeeldingen met CSS altijd rekening met toegankelijkheid, responsiviteit en prestaties.

Welke CSS style gebruik jij het meest voor je afbeeldingen? Welke interesseert jou het meest? Laat het ons weten in de comments.

Joel Olawanle Kinsta

Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 200 technical articles majorly around JavaScript and it's frameworks.