The aspect-ratio attribute of CSS is used to set the aspect ratio of an element, such as 16:9 or 4:3, so that the browser automatically calculates the height or width based on the proportion. Common usage scenarios include: 1. Keep the proportion of the picture container to avoid deformation; 2. The video embedding is more stable without padding skills; 3. The unified cell proportion in the grid layout. Notes include: After setting width and height, aspect-ratio may fail. Pay attention to browser compatibility and adjust the image display effect with object-fit.
aspect-ratio
attribute of CSS allows you to easily control the aspect ratio of elements, avoiding the use of padding hack or JS to implement responsive layouts. It is especially useful in picture, video containers and grid layouts.

What is aspect-ratio?
The role of aspect-ratio
is to set the aspect ratio of an element, such as 16:9 or 4:3. The browser will automatically calculate the height or width based on this scale, depending on whether you have set the dimensions in one of the directions.

Let's give the simplest example:
.box { aspect-ratio: 16 / 9; }
In this way, no matter what the width of .box
is, its height will automatically be adjusted to a ratio of 16:9.

Common usage scenarios
Picture container maintains proportion
When making responsive web pages, images often cause the layout to "deform". You can add aspect-ratio
to the image container so that it always maintains a fixed proportion.
.image-container { aspect-ratio: 4 / 3; overflow: hidden; } .image-container img { width: 100%; height: 100%; object-fit: cover; }
This way, the container can be filled without being stretched regardless of the original size of the picture.
Video embedding is more stable
Many websites use padding techniques to maintain proportions when embedding videos. Now you can directly use aspect-ratio
to simplify the code.
.video-wrapper { aspect-ratio: 16 / 9; }
Just put <iframe>
in HTML, and you don’t have to write extra styles to expand the height.
Uniform proportion of cells in grid layout
In a CSS Grid layout, you can also use it in combination with aspect-ratio
if you want each grid item to remain the same proportion (such as a gallery page).
.grid-item { aspect-ratio: 1; }
In this way, each grid item is a square and will not be deformed due to different contents.
Notes and compatibility
- Priority issue : If you set
width
andheight
at the same time,aspect-ratio
may be ignored. It will work when only one direction size is set. - Browser support : Mainstream modern browsers are already supported, including Chrome, Edge, Firefox, and Safari (starting around 2022). If you need to be compatible with the old version of IE, you still have to use the padding solution.
- What should I do if the ratio conflicts with the picture itself? If the image itself has an aspect ratio but the parent container has
aspect-ratio
set, cropping or white space may occur. At this time, remember to adjust the display effect withobject-fit
orobject-position
.
Basically that's it. aspect-ratio
is a very practical but easily overlooked property, especially in responsive design, which can save a lot of trouble. It is not complicated to use, just pay attention to its working mechanism and scope of application.
The above is the detailed content of Using the CSS aspect-ratio property. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

There are three ways to selectively include CSS on a specific page: 1. Inline CSS, suitable for pages that are not frequently accessed or require unique styles; 2. Load external CSS files using JavaScript conditions, suitable for situations where flexibility is required; 3. Containment on the server side, suitable for scenarios using server-side languages. This approach can optimize website performance and maintainability, but requires balance of modularity and performance.

Flexboxisidealforone-dimensionallayouts,whileGridsuitstwo-dimensional,complexlayouts.UseFlexboxforaligningitemsinasingleaxisandGridforprecisecontroloverrowsandcolumnsinintricatedesigns.

The HTML popover attribute transforms elements into top-layer elements that can be opened and closed with a button or JavaScript. Popovers can be dismissed a number of ways, but there is no option to auto-close them. Preethi has a technique you can u

CSS blocks page rendering because browsers view inline and external CSS as key resources by default, especially with imported stylesheets, header large amounts of inline CSS, and unoptimized media query styles. 1. Extract critical CSS and embed it into HTML; 2. Delay loading non-critical CSS through JavaScript; 3. Use media attributes to optimize loading such as print styles; 4. Compress and merge CSS to reduce requests. It is recommended to use tools to extract key CSS, combine rel="preload" asynchronous loading, and use media delayed loading reasonably to avoid excessive splitting and complex script control.

In the following tutorial, I will show you how to create Lottie animations in Figma. We'll use two colorful designs to exmplify how you can animate in Figma, and then I'll show you how to go from Figma to Lottie animations. All you need is a free Fig

We put it to the test and it turns out Sass can replace JavaScript, at least when it comes to low-level logic and puzzle behavior. With nothing but maps, mixins, functions, and a whole lot of math, we managed to bring our Tangram puzzle to life, no J

ThebestapproachforCSSdependsontheproject'sspecificneeds.Forlargerprojects,externalCSSisbetterduetomaintainabilityandreusability;forsmallerprojectsorsingle-pageapplications,internalCSSmightbemoresuitable.It'scrucialtobalanceprojectsize,performanceneed

No,CSSdoesnothavetobeinlowercase.However,usinglowercaseisrecommendedfor:1)Consistencyandreadability,2)Avoidingerrorsinrelatedtechnologies,3)Potentialperformancebenefits,and4)Improvedcollaborationwithinteams.
