Add aspect ratio snippet

This commit is contained in:
Chalarangelo
2022-07-19 11:47:30 +03:00
parent cf2a2bd7ce
commit b594c96de1

38
snippets/aspect-ratio.md Normal file
View File

@ -0,0 +1,38 @@
---
title: Aspect ratio
tags: layout
expertise: intermediate
author: chalarangelo
cover: blog_images/digital-nomad-12.jpg
firstSeen: 2022-08-14T05:00:00-04:00
---
Creates a responsive container with a specified aspect ratio.
- Use a CSS custom property, `--aspect-ratio` to define the desired aspect ratio.
- Set the container element to `position: relative` and `height: 0`, calculating its height using the `calc()` function and the `--aspect-ratio` custom property.
- Set the direct child of the container element to `position: absolute` and filling it parent, while giving it `object-fit: cover` to maintain the aspect ratio.
```html
<div class="container">
<img src="https://picsum.photos/id/119/800/450" />
</div>
```
```css
.container {
--aspect-ratio: 16/9;
position: relative;
height: 0;
padding-bottom: calc(100% / (var(--aspect-ratio)));
}
.container > * {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
```