關(guān)于Border-radius 50% 和100%

今天寫(xiě)代碼得時(shí)候,突然想到一個(gè)問(wèn)題, Border-radius50%和100%有什么不一樣, 在測(cè)試之下,得出,50%和100%都是圓形, 并沒(méi)有什么影響, 那么兩者有區(qū)別嘛?把我得出得結(jié)論總結(jié)給大家。

用 CSS 畫(huà)一個(gè)完美的圓

在 Web 上我們常常會(huì)看到很多用到圓形的地方,比如帶背景色的或者圖片是圓形的。

e3a78e38b1605c533f0befe032c3163c_b.jpg

CSS的圓RDIO,DribbbleCodecademy網(wǎng)站

通常我們都是用 CSS 的 **border-radius **屬性實(shí)現(xiàn)圓形:先畫(huà)一個(gè)方形,然后將它的 border-radius 設(shè)置成50%。但是為什么偏偏是50%呢?我從來(lái)沒(méi)有思考過(guò)這個(gè)問(wèn)題,只是單純地認(rèn)為把頂角的半徑設(shè)置成方形的高度或者寬度的一半就可以得到一個(gè)圓形。
這是一個(gè) 150px x 150px 大小的方形,將它的四個(gè)角的半徑都設(shè)置成 50%。根據(jù) W3C border-radius 的規(guī)范**定義,如果 **border-radius **的值是百分比的話,就是相對(duì)于 border box 的寬度和高度的百分比。在我們的例子中,盒子的寬高都是 150px,所以 50% 對(duì)應(yīng)的就是 75px。

a223b68e1772e2f698113bde5543b66c_b.jpg

border-radius 的工作原理
但是有時(shí)候我看到有的人會(huì)用 **border-radius: 100%; **實(shí)現(xiàn)圓形的效果,在前段時(shí)間的一個(gè)項(xiàng)目中我想都沒(méi)想就這么使用了,看起來(lái)和 50% 并沒(méi)有什么區(qū)別。是什么原因呢?
在 Lea Verou 的演講 The Humble Border Radius** 中,她說(shuō)到 W3C 對(duì)于重合曲線**有這樣的規(guī)范:如果兩個(gè)相鄰的角的半徑和超過(guò)了對(duì)應(yīng)的盒子的邊的長(zhǎng)度,那么瀏覽器要重新計(jì)算保證它們不會(huì)重合。
如果左上角的圓角半徑被設(shè)置成了100%,那么圓角就會(huì)從這個(gè)方形左下角跨到右上角,相當(dāng)于把圓角半徑設(shè)置成為150px(也就是方形的大?。H绻瑫r(shí)把右上角的圓角半徑也設(shè)置成為100%,則兩個(gè)相鄰圓角合起來(lái)就有200%。這種情況自然是不允許出現(xiàn)的,所以瀏覽器就會(huì)重新就算,勻出空間給右邊的圓角,同時(shí)縮放兩個(gè)圓角的半徑直到它們可以剛好符合這個(gè)方形,所以半徑就變成了50%。

252f2a7ff09a4cc2fb63ec0fa2ffd38e_b.jpg

結(jié)論

如果所有圓角的半徑都被設(shè)置成了100%,瀏覽器會(huì)根據(jù)圖形的實(shí)際情況做一些計(jì)算,保證圓角能夠剛好適應(yīng)圖形。不過(guò)我不確定將所有圖形的 border-radius 設(shè)置成100%對(duì)性能會(huì)不會(huì)有影響。

原文鏈接:Border-radius 50% vs 100%

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 各種純css圖標(biāo) CSS3可以實(shí)現(xiàn)很多漂亮的圖形,我收集了32種圖形,在下面列出。直接用CSS3畫(huà)出這些圖形,要比...
    劍殘閱讀 9,983評(píng)論 0 8
  • 在學(xué)習(xí)css的過(guò)程中,我們一般想要得到一個(gè)圓的話,那么border-radius這個(gè)屬性的必不可少的,有時(shí)候我們把...
    窮鬼_h閱讀 5,054評(píng)論 0 6
  • CSS3里border邊框?qū)傩宰隽舜蠓鶖U(kuò)展,廣受歡迎的就是border-image和border-radius。本...
    張歆琳閱讀 4,214評(píng)論 3 20
  • (一) 說(shuō)真的,去西藏旅行很辛苦的,那不是去享受,是去感受。 在得知兩位90后的領(lǐng)隊(duì)小于和顏路步行西藏的荒...
    步行者moon閱讀 516評(píng)論 1 0
  • (7.2)何謂量權(quán),曰:度于大小,謀于眾寡,稱貨財(cái)有無(wú)之?dāng)?shù),料人民多少,饒乏有余不足幾何;辯地形之險(xiǎn)易,孰利孰害,...
    柴胡桂枝湯閱讀 234評(píng)論 0 0

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