MENU
コンテンツ再構築中

CSS3: div 等のブロック要素を width にあわせたアスペクト比にする

img タグは width、height を % 指定することで、アスペクト比によるサイズ指定が簡単に行えます。
一方 div 要素に対し、width 100% のアスペクト比による height を記述しようとすると、なかなか意図した結果にならないと思います。

今回は可変する width に対し、アスペクト比による高さを指定する方法を説明したいと思います。

INDEX

目次

  • ブロック要素を width にあわせたアスペクト比にする
  • まとめ

ブロック要素を width にあわせたアスペクト比にする

ここでは、width 100% に対し、正方形(height 100%)の div を作成します。

HTML

ネストになる div を作成します。

[code]

Aspect content

[/code]

CSS

外側の div (aspect-container) の before 要素の padding-top を 100% とすることで、width 100% に対して 100% の高さを確保します。

[code]
.aspect-container {
position: relative;
width: 100%;
}
.aspect-container:before {
content:””;
display: block;
padding-top: 100%;
}
.aspect-content {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
[/code]

まとめ

アスペクト比を維持したまま、ウインドウサイズや親要素の width に応じて、子ブロック要素の height を変えたい場合に有効な方法です。

今回は正方形を例にしましたが、before の padding-top の比率 を変更することで、任意のアスペクト比への対応も可能です。

この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

Please share it!
  • URLをコピーしました!
  • URLをコピーしました!
INDEX