【CSS】背景圖片自適應(yīng)大小

事情的起因是這樣的 ——

聽聞svg是矢量圖標(biāo),可以無損拉伸大小。

于是我給<span>標(biāo)簽設(shè)了一個(gè)svg格式的背景圖片,并期待效果和這個(gè)圖片是一樣的:

image.png

然后敲出了如下代碼

<style>
    .demo {
        float: left;
        width: 20px;
        height: 20px;
        background-image: url(../../assets/release_icon.svg);
    }
</style>

<span class="demo">
</span>

然而效果和我想象的并不一樣:
image.png

于是我研究了一下,

發(fā)現(xiàn)給span標(biāo)簽設(shè)置的尺寸是20px * 20px, 而svg圖片的原始尺寸是10px * 10px

image.png

所以,應(yīng)該是svg圖片沒有自適應(yīng)標(biāo)簽大小,默認(rèn)通過拷貝自身的方式,填充了標(biāo)簽中空白的空間

然后我就打開了萬能的MDN查了一下,

果然可以設(shè)置一個(gè)屬性達(dá)到我想要的效果:background-repeat: no-repeat;

使背景圖片不自動(dòng)重復(fù)填充

于是我把代碼改成了這樣:

<style>
    .demo {
        float: left;
        width: 20px;
        height: 20px;
        background-image: url(../../assets/release_icon.svg);
        background-repeat: no-repeat; 
    }
</style>

<span class="demo">
</span>

然而效果和我想象的還是不太一樣:
image.png

圖片是不重復(fù)了,但是大小還是10px * 10px,并沒有拉伸??


于是我又查了一下是不是有設(shè)置背景尺寸的屬性。。果然。。

background-size: contain;

這個(gè)屬性可以使圖片在保持原有比例的同時(shí),縮放到標(biāo)簽元素可用空間中最大的尺寸。

于是??

<style>
    .demo {
        float: left;
        width: 20px;
        height: 20px;
        background-image: url(../../assets/release_icon.svg);
        background-repeat: no-repeat;
        background-size: contain;
    }
</style>
<div>
    <span class="demo">
    </span>
</div>

效果:
image.png

搞定??


所以 ——

既然background-size: contain;可以使圖片大小自適應(yīng),

那么background-repeat: no-repeat;這條屬性是不是可以刪掉了?

于是我嘗試了一下:

<style>
    .demo {
        float: left;
        width: 30px;
        height: 20px;
        background-image: url(../../assets/release_icon.svg);
        background-size: contain;
    }
</style>
<div>
    <span class="demo">
    </span>
</div>

效果變成了這樣:
image.png

在這種情況下,span標(biāo)簽的大小是30px * 20px,圖片原始大小是10px * 10px,

如果要完全填充,并不能保證原圖片的比例,

所以!如果標(biāo)簽的大小和圖片的原始大小,不是同比例的,還是需要加上background-repeat: no-repeat;這條屬性的!

為了以防以后改動(dòng)這個(gè)圖片的原始大小或者標(biāo)簽的尺寸,我又默默地加上了??


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

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

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