Performance: Card images and overlays
This affects the page's loading speed and rendering performance by how images and overlay elements are layered and painted.
<div class="card text-bg-dark"> <img src="optimized-image.webp" class="card-img" alt="..." loading="lazy" decoding="async"> <div class="card-img-overlay"> <h5 class="card-title">Title</h5> <p class="card-text">Some overlay text.</p> </div> </div>
<div class="card"> <img src="large-image.jpg" class="card-img" alt="..."> <div class="card-img-overlay"> <h5 class="card-title">Title</h5> <p class="card-text">Some overlay text.</p> </div> </div>
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Large unoptimized image with semi-transparent overlay | Minimal (3 nodes) | 1 reflow | 2 repaints due to transparency | [X] Bad |
| Optimized lazy-loaded image with solid overlay background | Minimal (3 nodes) | 1 reflow | 1 repaint | [OK] Good |
card-img-overlay class in Bootstrap cards?card-img-overlaycard-img class and the overlay content uses card-img-overlay inside the card container.card-img and overlay div after with card-img-overlay.<div class='card' style='width: 18rem;'>
<img src='photo.jpg' class='card-img' alt='Sample Image'>
<div class='card-img-overlay'>
<h5 class='card-title'>Hello</h5>
<p class='card-text'>Overlay text</p>
</div>
</div>card-img-overlay content appears layered on the image, so text is visible over the picture.<div class='card'> <div class='card-img-overlay'>Overlay Text</div> <img src='pic.jpg' class='card-img' alt='Pic'> </div>
card-img and overlay a separate div with card-img-overlay. The order matters for layering.card-img and overlay content uses card-img-overlay for layering text on image.card-img-overlay can add a dark background with opacity. White text classes ensure readability.Pass the test and this pattern moves unknown