CSSで縦横比を指定したい
おはようございます。小野です。
CSSを書いていて、個人的に一番多いタイポは「margin: atuo」です。
私のコードではよくマージンが熱男します。
…
今回はCSSで指定する方法を紹介します。
主に画像など、要素の縦横比を指定したい場合ってけっこう多いです。
CSSプロパティ「aspect-ratio」
名前の通り、「アスペクト比」を指定できるプロパティです。
記述例(4:3の場合)aspect-ratio: 4 / 3
See the Pen aspect-ratio by Hirofumi Ono (@onow) on CodePen.
aspect-ratioはシンプルで使いやすいですが、
最新ブラウザ以外だと対応していない場合が多いです。(2021/11)
【参考】対応状況
https://caniuse.com/?search=aspect-ratio
CSSプロパティ「padding-top」を使う
結局Safariなどは最新バージョンでないと対応していないので、
まだこちらを使っているのが現状です。
画像を4:3で切り取るときはこんな感じ↓
<div>
<img src="画像">
</div>
div {
position: relative;
width: 100%;
padding-top: 75%;
}
img {
position: absolute;
top: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
↓
padding-topで%を指定すると要素の横を参照するので、widthを指定する際は注意です。
まとめ
padding-topを利用する方法は無理矢理感がすごいので、
aspect-ratioを使いたいものです。
主要の最新ブラウザには対応しているので、これからに期待ですね。