CSS aspect-ratio: What It Is and How to Use It
aspect-ratio property in CSS sets a preferred width-to-height ratio for an element. It helps keep elements like images or boxes proportional regardless of screen size or container changes.How It Works
The aspect-ratio property tells the browser to keep an element's width and height in a fixed ratio, like a photo frame that always stays the same shape no matter how big or small it gets. Imagine you have a rectangle that should always be twice as wide as it is tall. By setting aspect-ratio: 2 / 1;, the browser adjusts the height automatically when the width changes, or vice versa.
This is useful because it removes the need to manually calculate sizes or use tricky padding hacks. The browser uses this ratio to keep the element's shape consistent, making layouts more predictable and visually balanced.
Example
This example shows a box with an aspect ratio of 16:9, a common ratio for videos and widescreen images. The box width is set to 300px, and the height adjusts automatically to keep the ratio.
div {
width: 300px;
aspect-ratio: 16 / 9;
background-color: #4a90e2;
color: white;
display: flex;
align-items: center;
justify-content: center;
font-family: Arial, sans-serif;
font-size: 1.2rem;
border-radius: 8px;
}
<div>This box keeps 16:9 ratio</div>When to Use
Use aspect-ratio when you want elements to keep a consistent shape regardless of screen size or container changes. This is especially helpful for:
- Images and videos to avoid distortion.
- Cards or boxes in grid layouts to maintain uniformity.
- Responsive designs where fixed height or width is not practical.
It simplifies layout code and improves visual consistency without extra calculations or JavaScript.
Key Points
- Maintains width-to-height ratio automatically.
- Works well with responsive layouts.
- Supports ratios like
16 / 9,1 / 1, or decimals. - Reduces need for padding hacks or fixed heights.
- Supported in all modern browsers.
Key Takeaways
aspect-ratio property keeps elements proportional by fixing their width-to-height ratio.