在圖片長寬不相等的情況下,想將長寬設置為相等並且自適應屏幕,可以通過 js 的方式進行設置並通過監聽 resize 來實時更新,但是這種方式很麻煩。
這里通過 css 來達到我們想要的效果:
<div class='box'>
<img src="...">
</div>
需要添加一個父元素來達到我們的目的。
.box {
position: relative;
width: 50%;
}
.box:before {
content: "";
display: block;
padding-top: 100%;
}
或者:
.box{
position: relative;
width: 50%;
height: 0;
padding-bottom: 50%;
}
我們在這里定義了一個偽元素並且將其 padding-top 設置為 100%,因為這里的 padding-top 是相對於元素的 width 的。
現在我們定義了一個 .box 元素,它的長和寬是相等的,現在我們只需要設置 img 的 CSS 即可:
.box img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
