您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)如何解決border-radius值設(shè)置的問題,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
問題記錄
今天本打算要完成一個(gè)類似于進(jìn)度條的小組件, 原型是這樣的(這里長200px, 高28px)
我一看, 很簡單嘛, 拋開那個(gè)數(shù)字1樣式不談, 整體父級(jí)樣式就是一個(gè)左邊半圓形, 右邊帶有弧度的div啊。
這個(gè)用css的border-radius就可以搞定了啊。 左邊是圓角, 圓角50px啊, 右邊是小圓角, 以往的div都是8px弧度的。 根據(jù)border-radius中角的順序(以順時(shí)針的方向解析,上左,上右,下右,下左), 設(shè)置border-radius: 50px 8px 8px 50px;就好了啊。 滿心歡喜寫好樣式, 打開瀏覽器。
傻了, 不對(duì)啊, 我原以為是這樣的
實(shí)際上, 瀏覽器中是這樣的
不對(duì)了啊, 右邊的角度設(shè)置了啊, 怎么看起來跟沒設(shè)置一樣呢, 我把8改成了10px在試了下, 還是差不多跟沒設(shè)置一樣的。
8px按理說應(yīng)該有明顯的弧度了啊, 全設(shè)置成8px看看呢
對(duì)啊, 這是8px應(yīng)該有的弧度, 為什么改成左邊寫成50px就變樣了呢, 難道跟50px有關(guān)?帶著疑問, 我看了看百度。
百度說, 其實(shí)border-radius的完整寫法(w3c)是
border-radius: 1-4 length|% / 1-4 length|%;
平時(shí)我們寫的border-radius : 50px,其實(shí)完整的寫法應(yīng)該是:
border-radius : 50px 50px 50px 50px / 50px 50px 50px 50px;
“/”前的四個(gè)數(shù)值表示圓角的水平半徑,后面四個(gè)值表示圓角的垂直半徑
每個(gè)順序一一對(duì)應(yīng) (水平半徑:左上 右上 右下 左下)/(垂直半徑:左上 右上 右下 左下),
什么是水平半徑和垂直半徑呢?
根據(jù)水平半徑跟垂直半徑的比值, 可以調(diào)整角的弧度, 兩者半徑相同, 就是個(gè)圓角。 這就是問什么我平時(shí)設(shè)置的角都是圓角的原因, 因?yàn)槲覜]有寫完整過
例如 border-radius:10px 20px 30px 40px/40px 30px 20px 10px
就是這樣的樣子
再來回頭看我們之前的問題
我們忽略了高度28px了啊. 這樣算來, 我們要設(shè)置右邊是個(gè)半圓形, 只要水平跟垂直半徑都是14px不就好了嗎
border-radius: 14px 8px 8px 14px / 14px 8px 8px 14px;
這樣,父級(jí)樣式不就對(duì)了嗎。
之前右邊設(shè)置的8px圓角看起來沒有效果, 可能跟50px比起來, 被等比例壓縮了吧, 因?yàn)樽筮叡緛砭透?8px, 塞了個(gè)半徑50px進(jìn)去, 我算算(14 * 8 / 50 = 2.24), 就等于設(shè)置成了
border-radius: 14px 2.24px 2.24px 14px / 14px 2.24px 2.24px 14px;
關(guān)于“如何解決border-radius值設(shè)置的問題”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。