CSS - object-fit
概要
| 属性名 | object-fit |
|---|---|
| 値 | fill | contain | cover | none | scale-down |
| 初期値 | fill |
| 適用可能要素 | リプレース要素 |
| 継承 | しない |
| サポート | https://caniuse.com/?search=object-fit |
説明
画像(<img>)やビデオ(<video>)の横幅(width)や高さ(height)を指定した場合に、オブジェクトをどのように拡大・縮小するかを指定します。
| 値 | 説明 |
|---|---|
| fill | オブジェクトの横幅が width に、高さが height になるように拡大・縮小されます。 |
| contain | オブジェクトの縦横比を保ったまま、縦幅いっぱい、もしくは、横幅いっぱいに拡大・縮小されます。オブジェクトの縦横比と width と height の比が合わない場合は隙間が生じます。 |
| cover | オブジェクトの縦横比を保ったまま、縦幅いっぱい、もしくは、横幅いっぱいに拡大・縮小されます。オブジェクトの縦横比と width と height の比が合わない場合はオブジェクトの一部がはみ出します。 |
| none | 拡大・縮小しません。 |
| scale-down | none または contain の内、オブジェクトの大きさが小さい方が採用されます。 |
使用例
CSS
.test {
display: inline-block;
margin-right: 6rem;
}
.img1 {
width: 80px;
height: 50px;
border: 1px solid #000;
margin: 10px 0;
}
.img2 {
width: 50px;
height: 80px;
border: 1px solid #000;
margin: 10px 0;
}
.fill {
object-fit: fill;
}
.contain {
object-fit: contain;
}
.cover {
object-fit: cover;
}
.none {
object-fit: none;
}
.scale-down {
object-fit: scale-down;
}
HTML
<div class="test"> <div>object-fit: fill</div> <img class="img1 fill" src="example.gif" alt="test"> <img class="img2 fill" src="example.gif" alt="test"> </div> <div class="test"> <div>object-fit: contain</div> <img class="img1 contain" src="example.gif" alt="test"> <img class="img2 contain" src="example.gif" alt="test"> </div> <div class="test"> <div>object-fit: cover</div> <img class="img1 cover" src="example.gif" alt="test"> <img class="img2 cover" src="example.gif" alt="test"> </div> <div class="test"> <div>object-fit: none</div> <img class="img1 none" src="example.gif" alt="test"> <img class="img2 none" src="example.gif" alt="test"> </div> <div class="test"> <div>object-fit: scale-down</div> <img class="img1 scale-down" src="example.gif" alt="test"> <img class="img2 scale-down" src="example.gif" alt="test"> </div>
表示
object-fit: fill
test
test
object-fit: contain
test
test
object-fit: cover
test
test
object-fit: none
test
test
object-fit: scale-down
test
test
通常はオブジェクトの中央(50%, 50%)の位置が領域の中央に表示されますが、表示位置をずらしたい場合は object-position を用います。
CSS
.top {
object-position: 50% 0;
}
HTML
<div class="test"> <img class="img1 cover" src="../../image/yuki5.gif" alt="test"> <img class="img1 cover top" src="../../image/yuki5.gif" alt="test"> </div>
表示
test
test
関連項目
object-positionリンク
- https://developer.mozilla.org/ja/docs/Web/CSS/object-fit
- https://drafts.csswg.org/css-images/#the-object-fit
Copyright (C) 2022-2023 杜甫々
初版:2022年8月7日、最終更新:2023年1月22日
https://www.tohoho-web.com/css/prop/object-fit.htm