Table of Contents
Common usage scenarios
1. Keep the picture container proportion
2. Responsive video embedding
Notes and compatibility
Home Web Front-end CSS Tutorial Explain the CSS `aspect-ratio` property

Explain the CSS `aspect-ratio` property

Jul 22, 2025 am 12:58 AM
css

The aspect-ratio attribute of CSS is used to control the aspect-ratio ratio of an element. Its syntax is aspect-ratio: width / height;, for example.box { aspect-ratio: 16 / 9;} means that the element always maintains a ratio of 16:9. 1. It is often used to maintain proportions in image containers, such as square avatar frames; 2. Responsive video embedding to keep the iframe at a 16:9 ratio; 3. Notes include: only effective when not fixed width or one in high school, not suitable for inline elements, different from object-fit, mainstream browsers have already supported, but older versions may need to be replaced by padding techniques. Mastering aspect-ratio simplifies proportional control in responsive layouts.

Explain the CSS `aspect-ratio` property

aspect-ratio attribute of CSS is used to control the aspect ratio of an element, which allows you to easily maintain a specific aspect ratio of an element at different sizes. This is especially useful in responsive designs, such as when embedding videos, image displays, or grid layouts.

Explain the CSS `aspect-ratio` property

How to use aspect-ratio

The syntax of this property is simple:

 element {
  aspect-ratio: width / height;
}

For example:

Explain the CSS `aspect-ratio` property
 .box {
  aspect-ratio: 16 / 9;
}

Indicates that the width and height of this .box element always maintain a ratio of 16:9. If the width is 320px, the height will automatically adjust to 180px (because 320 ÷ 16 × 9 = 180).

It should be noted that if you set width and height at the same time, the browser will decide whether to apply aspect-ratio based on these two values. That is, aspect-ratio will only work if you don't have the dimensions that fix one of the directions.

Explain the CSS `aspect-ratio` property

Common usage scenarios

1. Keep the picture container proportion

You may want a picture container to keep a certain proportion of the content displayed no matter how the screen changes, so that the page looks neat. For example, make a square avatar frame:

 .avatar {
  aspect-ratio: 1 / 1;
  width: 100px;
}

This ensures that .avatar is a 100×100 square.

2. Responsive video embedding

When embedding YouTube videos in web pages, it is often necessary to make the iframe automatically adapt to different device widths but still maintain a 16:9 ratio:

 <div class="video-container">
  <iframe src="..."></iframe>
</div>

Cooperate with CSS:

 .video-container {
  aspect-ratio: 16 / 9;
}

.video-container iframe {
  width: 100%;
  height: 100%;
}

In this way, no matter how wide the parent container is, the iframe will scale to scale.


Notes and compatibility

  • Browser support : mainstream modern browsers have already supported aspect-ratio , including Chrome, Edge, Firefox and Safari. But if you still need to be compatible with some old versions, you may need to use padding techniques to make compatibility.
  • Comparing with traditional padding techniques : we used to use "padding-top percentage" for proportional control, but now with aspect-ratio , the code is more concise and intuitive.
  • It cannot be used on inline elements : In-line elements such as <span></span> are not suitable for setting this attribute.
  • Don't be confused with object-fit : aspect-ratio controls the size ratio of the entire element, while object-fit controls how the content (such as pictures) is displayed in the container.

Basically that's it. Mastering aspect-ratio can help you save a lot of trouble in manually calculating width and height, especially when making responsive layouts.

The above is the detailed content of Explain the CSS `aspect-ratio` property. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

PHP Tutorial
1596
276
How to create a responsive testimonial slider with CSS How to create a responsive testimonial slider with CSS Aug 12, 2025 am 09:42 AM

It is feasible to create a responsive automatic carousel slider with pure CSS, just combine HTML structure, Flexbox layout, and CSS animation. 2. First build a semantic HTML container containing multiple recommendation terms, each .item contains reference content and author information. 3. Use the parent container to set display:flex, width:300% (three slides) and apply overflow:hidden to achieve horizontal arrangement. 4. Use @keyframes to define a translateX transformation from 0% to -100%, and combine animation: scroll15slinearinfinite to achieve seamless automatic scrolling. 5. Add media

How to create a dotted border in CSS How to create a dotted border in CSS Aug 15, 2025 am 04:56 AM

Use CSS to create dotted borders, just set the border attribute to dotted. For example, "border:3pxdotted#000" can add a 3-pixel-wide black dot border to the element. By adjusting the border-width, the size of the point can be changed. The wider borders produce larger points. You can set dotted borders for a certain side, such as "border-top:2pxdottedred". Dotted borders are suitable for block-level elements such as div and input. They are often used in focus states or editable areas to improve accessibility. Pay attention to color contrast. At the same time, different from dashed's short-line style, dotted presents a circular dot shape. This feature is widely used in all mainstream browsers.

How to use CSS gradients for backgrounds How to use CSS gradients for backgrounds Aug 17, 2025 am 08:39 AM

CSSgradientsprovidesmoothcolortransitionswithoutimages.1.Lineargradientstransitioncolorsalongastraightlineusingdirectionsliketobottomorangleslike45deg,andsupportmultiplecolorstopsforcomplexeffects.2.Radialgradientsradiatefromacentralpointusingcircleo

How to change the list style in CSS How to change the list style in CSS Aug 17, 2025 am 10:04 AM

To change the CSS list style, first use list-style-type to change the bullet or numbering style. 1. Use list-style-type to set the bullet of ul to disc, circle or square, and the number of ol is decimal, lower-alpha, upper-alpha, lower-roman or upper-roman. 2. Remove the tag completely with list-style:none. 3. Use list-style-image:url('bullet.png') to replace it with a custom image. 4. Use list-style-position:in

How to create a glassmorphism effect with CSS How to create a glassmorphism effect with CSS Aug 22, 2025 am 07:54 AM

To create a glass mimicry effect of CSS, you need to use backdrop-filter to achieve background blur, set a translucent background such as rgba(255,255,255,0.1), add subtle borders and shadows to enhance the sense of hierarchy, and ensure that there is enough visual content behind the elements; 1. Use backdrop-filter:blur(10px) to blur the background content; 2. Use rgba or hsla to define the transparent background to control the degree of transparency; 3. Add 1pxsolidrgba(255,255,255,0.3) borders and box-shadow to enhance the three-dimensionality; 4. Ensure that the container has rich backgrounds such as pictures or textures to present a blurred penetration effect; 5. It is compatible with old browsers

How to change the cursor in CSS How to change the cursor in CSS Aug 16, 2025 am 05:00 AM

Usebuilt-incursortypeslikepointer,help,ornot-allowedtoprovideimmediatevisualfeedbackfordifferentinteractiveelements.2.ApplycustomcursorimageswiththecursorpropertyusingaURL,optionallyspecifyingahotspotandalwaysincludingafallbacklikeautoorpointer.3.Fol

How to use grid-template-areas in CSS How to use grid-template-areas in CSS Aug 22, 2025 am 07:56 AM

Thegrid-template-areaspropertyallowsdeveloperstocreateintuitive,readablelayoutsbydefiningnamedgridareas;eachstringrepresentsarowandeachwordacolumncell,withgrid-areanamesonchildelementsmatchingthoseinthetemplate,suchas"headerheaderheader"for

How to add a box shadow in CSS How to add a box shadow in CSS Aug 18, 2025 am 11:39 AM

To add box shadows, use box-shadow attribute; 1. The basic syntax is box-shadow: horizontal offset vertical offset blur radius expansion radius shadows in color; 2. The first three values are required, the rest are optional; 3. Use rgba() or hsla() to achieve transparent effect; 4. The positive expansion radius expands shadows and the negative value is reduced; 5. Multiple shadows can be added by commas separation; 6. Overuse should be avoided to ensure that visibility is tested on different backgrounds; this attribute is well supported by the browser, and reasonable use can improve the design texture.

See all articles