object-fit
和object-position
。替換元素
(replaced elements)的自適應(yīng)問題,簡單的說,就是處理替換元素的變形(這里指長寬比例變形)問題。替換元素
?替換元素其實是:object-fit: fill | contian | cover | none | scale-down;
fill
: 默認(rèn)值。填充,可替換元素填滿整個內(nèi)容區(qū)域,可能會改變長寬比,導(dǎo)致拉伸。contain
: 包含,保持原始的尺寸比例,保證可替換元素完整顯示,寬度或高度至少有一個和內(nèi)容區(qū)域的寬度或高度一致,部分內(nèi)容會空白。cover
: 覆蓋,保持原始的尺寸比例,保證內(nèi)容區(qū)域被填滿。因此,可替換元素可能會被切掉一部分,從而不能完整展示。none
: 保持可替換元素原尺寸和比例。scale-down
: 等比縮小。就好像依次設(shè)置了none或contain, 最終呈現(xiàn)的是尺寸比較小的那個。<style>
.box{
position:relative;
float:left;
margin:0 10px 40px 10px;
width:150px;
height:150px;
}
.box>img{
width:100%;
height:100%;
background-color:#000;
}
.fill{
object-fit:fill;
}
.contain{
object-fit:contain;
}
.cover{
object-fit:cover;
}
.none{
object-fit:none;
}
.scale{
object-fit:scale-down;
}
</style>
<div class="box">
<img src="example-girl.jpg" class="fill" alt="">
</div>
<div class="box">
<img src="example-girl.jpg" class="contain" alt="">
</div>
<div class="box">
<img src="example-girl.jpg" class="cover" alt="">
</div>
<div class="box">
<img src="example-girl.jpg" class="none" alt="">
</div>
<div class="box">
<img src="example-girl.jpg" class="scale" alt="">
</div>
object-position: <position>
50% 50%
,也就是居中效果,其取值和CSS中background-position
屬性取值一樣。(如果不熟悉background-position,可以瞄瞄這里《CSS3 Background》)img{
object-fit: contain;
object-position: 0 0;
}
img{
object-fit: contain;
object-position: bottom 10px left 10px;
}
img{
object-fit: contain;
object-position: calc(100% - 10px) calc(100% - 10px);
}
img{
object-fit: contain;
object-position: -10px calc(100% - 10px);
}
object-position
的特性表現(xiàn)與backgound-position
一樣一樣的。
更多建議: