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:

React Svelte Next JS

Remix vs. Next.js vs. SvelteKit

Compare key features of popular meta-frameworks Remix, Next.js, and SvelteKit, from project setup to styling.

Alex Merced
Feb 4, 2026 ⋅ 8 min read
replay feb 4

The Replay (2/4/26): AI-first leadership, Tailwind layoffs, and more

Discover what’s new in The Replay, LogRocket’s newsletter for dev and engineering leaders, in the February 4th issue.

Matt MacCormack
Feb 4, 2026 ⋅ 37 sec read
ken pickering ai first organization

What it actually means to be an AI-first engineering organization

AI-first isn’t about tools; it’s about how teams think, build, and decide. Ken Pickering, CTO at Scripta Insights, shares how engineering leaders can adapt.

Ken Pickering
Feb 4, 2026 ⋅ 3 min read

How to build agentic frontend applications with CopilotKit

Build context-aware, agentic frontend applications by connecting React state and actions to LLMs with CopilotKit.

Emmanuel John
Feb 3, 2026 ⋅ 5 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

Hey there, want to help make our blog better?

Join LogRocket’s Content Advisory Board. You’ll help inform the type of content we create and get access to exclusive meetups, social accreditation, and swag.

Sign up now