aspect-ratio
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
構文
aspect-ratio
特性は、ビューポートの幅対高さのアスペクト比を表現する <ratio>
値で指定します。これは範囲の特性であり、接頭辞の付いた min-aspect-ratio
および max-aspect-ratio
の変化形を使用して、それぞれ最小値と最大値をクエリーすることができます。
例
以下の例は独自のビューポートを生成する <iframe>
に含まれています。 <iframe>
の大きさを変更して aspect-ratio
の変化を確認してください。
なお、メディアクエリーの条件がどれも true でない場合、背景は白になります。これは、以下のルールが <iframe>
内の <div>
に適用されないためです。どの幅と高さの値がこれを起こすのか、見つけてみてください。
HTML
<iframe id="outer">
<div id="inner">
ビューポートの幅と高さを変更しながら、この要素を見ていてください。
</div>
</iframe>
CSS
/* 最小アスペクト比 */
/* アスペクト比が 8/5 = 1.6 以上である場合に選択 */
@media (min-aspect-ratio: 8/5) {
div {
background: #99f; /* 青 */
}
}
/* 最大アスペクト比 */
/* アスペクト比が 3/2 = 1.5 以下である場合に選択 */
@media (max-aspect-ratio: 3/2) {
div {
background: #9f9; /* 緑 */
}
}
/* 正確なアスペクト比。上書きを防ぐために最下部に配置 */
@media (aspect-ratio: 1/1) {
div {
background: #f99; /* 赤 */
}
}
結果
min-aspect-ratio: 8/5
は下限を 1.6 に設定するため、このメディアクエリーはアスペクト比が 1.6 以上の要素を選択します。 max-aspect-ratio: 3/2
は上限を設定するため、このメディアクエリーはアスペクト比が 1.5 以下の要素を選択します。 aspect-ratio: 1/1
は、後で宣言されているため、最大アスペクト比のルールを上書きし、アスペクト比が正確に 1
の要素を選択します。
初期状態から高さを縮小すると、アスペクト比は 1 から増加し始めます。そのため、div の背景色は 赤 (1) < 緑 (1.5) < 白 < 青 (1.6) の順に変化します。
仕様書
Specification |
---|
Media Queries Level 4 # aspect-ratio |