2019-11-30
2131
#css
Craig Buckler
10539
Nov 30, 2019 â‹… 7 min read

Jank-free page loading with media aspect ratios

Craig Buckler Freelance UK IT consultant specializing in HTML5 webby stuff.

Recent posts:

How to win clients with a Flutter web demo that feels real

How to win clients with a Flutter web demo that feels real

Use Flutter to build browser-based app demos that help clients visualize the product, speed up buy-in, and close deals faster.

Lewis Cianci
Mar 21, 2025 â‹… 5 min read
TypeScript Is Getting A 10x Faster Compiler —Here’s What It Means For Developers

TypeScript is getting a 10x faster compiler — here’s what it means for developers

TypeScript’s new Go-based compiler offers 10x faster builds, improved CI/CD performance, quicker editor startup, and enhanced hot reload times.

Kapeel Kokane
Mar 21, 2025 â‹… 6 min read

How to manage JavaScript closures in React

Learn how to manage JavaScript closures in React and explore real-life examples of proper JavaScript closure management.

Andrew Evans
Mar 21, 2025 â‹… 10 min read
how to use css variables

How to use CSS variables like a pro

By building these four simple projects, you’ll learn how CSS variables can help you write reusable, elegant code and streamline the way you build websites.

Idorenyin Obong
Mar 20, 2025 â‹… 18 min read
View all posts

3 Replies to "Jank-free page loading with media aspect ratios"

  1. This is great but I am struggling here a bit. For example. On my photo hosting site, I display a random selection of images. These are shown as thumbnails. See here:

    https://www.ag2si.com/gallerysoft/

    What I am having difficulty with understanding is the following:
    I created the site as responsive, so when you grow or shrink the browser, the thumbnails grow and shrink as well.
    I know the aspect ratio of the original image.
    I use flex and specify something like so
    flex:${aspect};
    However, since the page is dynamic in size, I do not know what size the thumbnails will be. Therefore, I cannot add the width and height attributes to the src tag. And a pagespeed web dev site recommends I should include them.

    Does that make sense?

    Thanks
    JT

  2. You set the width and height of the original image – not the dimensions it’ll be displayed at.

    So a 600×450 image has width=”600″ height=”450″ regardless of how it appears on the page. The browser will calculate it’s aspect ratio so, if the resulting image width is 300px, it’ll reserve 225px of vertical space before the image has started to load.

    Therefore, width=”4″ height=”3″ and width=”8000″ height=”6000″ would act identically – they’re all the same aspect ratio.

Leave a Reply