在使用CSS添加圓角樣式時(shí),我們有時(shí)可能會(huì)遇到一個(gè)比較煩人的問題:圖片圓角會(huì)出現(xiàn)黑邊。
這是因?yàn)閷?duì)圖片添加圓角樣式時(shí),圖片會(huì)被強(qiáng)制拉伸以適應(yīng)原先的大小。因此,在圓角處,圖片的邊緣會(huì)與背景顏色重合,形成了黑邊。如果要解決這個(gè)問題,我們有幾種方法可供嘗試:
img{ border-radius: 50%; overflow:hidden; }
方法1:給圖片設(shè)置overflow:hidden屬性
給圖片設(shè)置overflow:hidden屬性可以讓圖片的圓角部分隱藏起來,這樣就不會(huì)出現(xiàn)黑邊了。不過,這個(gè)方法對(duì)于某些圖片可能會(huì)導(dǎo)致部分內(nèi)容被裁剪,需要根據(jù)實(shí)際情況來決定是否使用。
img{ border-radius: 50%; -webkit-transform:translateZ(0); transform:translateZ(0); }
方法2:給圖片設(shè)置3D變換
給圖片加上3D變換樣式,可以讓圖片更加“真實(shí)”,并且能解決圓角黑邊的問題。通過給圖片添加transform屬性,可以讓瀏覽器將其視為一個(gè)3D對(duì)象,這樣就能消除部分問題。
background: url('image.jpg') no-repeat center center; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; border-radius: 50%; overflow: hidden;
方法3:將圖片作為背景
將圖片設(shè)置為元素的背景,而不是直接插入到HTML中,可以消除產(chǎn)生的圓角黑邊。這是因?yàn)槲覀兛梢酝ㄟ^background-size屬性來自定義背景的大小,從而避免圖片在縮放后形成黑邊。不過,這個(gè)方法對(duì)于一些不適合作為背景的圖片可能無法生效。