實(shí)現(xiàn)一個響應(yīng)式的正方形

問題意義

對不同手機(jī)寬度進(jìn)行自適應(yīng)

方法一

使用vw(viewport width)單位

.square {
    width: 50%;
    height: 50vw;
    background: #ccc;
}

方法二

設(shè)置垂直padding值為與width相等的百分比值。

css知識點(diǎn):margin/padding取形式為百分比的值時,無論是left/right,還是top/bottom,都是以父元素的width為參照物的!

代碼:

.square {
    width: 25%;
    height: 0;
    padding-bottom: 25%;
    background-color: aqua;
}

不寫hegith:0的話,正方形內(nèi)有內(nèi)容時,正方形會溢出

方法三

利用容器,與方法二原理相同,利用偽元素實(shí)現(xiàn)

.square {
    position: relative;
    background: aqua;
}
.square:after {
    content: '';
    display: block;
    padding-top: 100%;
}
.square-inner {
    width:100%;
    height:100%;
    position: absolute; 
}
.square-width{
    width: 15vw;
}
<div class="square square-width">
    <div class="square-inner">
        qaq
    </div>
</div>

關(guān)于圖片自適應(yīng)

自適應(yīng)正方形中間的內(nèi)容通常為圖片,這時候中間的圖片也需要自適應(yīng),以下是圖片自適應(yīng)的方法

1. background-image的做法:
.image{
    background: url(./img.jpg) no-repeat ;
    background-size:cover; 
    background-position: center;
}

background-size為cover時布滿盒子,為contain時根據(jù)自己最寬邊完全展示圖片

2. img標(biāo)簽的做法:

object-fit (https://developer.mozilla.org/zh-CN/docs/Web/CSS) 屬性指定可替換元素的內(nèi)容應(yīng)該如何適應(yīng)到其使用的高度和寬度確定的框。
可以通過使用 object-position 屬性來切換被替換元素的內(nèi)容對象在元素框內(nèi)的對齊方式。

object-fit 屬性取值:fill | contain | cover | none | scale-down
contain:保持寬高比縮放與當(dāng)前標(biāo)簽同大
cover:裁剪
fill:拉伸
none被替換的內(nèi)容將保持其原有的尺寸。
scale-down內(nèi)容的尺寸與 none 或 contain 中的一個相同,取決于它們兩個之間誰得到的對象尺寸會更小一些。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容