css border-radius的用法及自適應的橢圓


我們知道border-radius允許您為元素添加圓角邊框!

而border-radius 屬性是一個簡寫屬性,用於設置四個 border-*-radius 屬性。

如果省略 bottom-left,則與 top-right 相同。如果省略 bottom-right,則與 top-left 相同。如果省略 top-right,則與 top-left 相同。

先看個例子。

如果將有個正方形元素設置一個border-radius值為邊長的一半,則可以得到一個圓形。

width: 200px;height: 200px;border-radius: 100px;background: brown;

效果圖:

 

這里寬高是固定的且相等,如果寬高不相等則顯示為一個橢圓。

寬高不等效果圖:

自適應橢圓

由於根據實際情況出發,我們希望它能根據實際的內容自動調整並適應。

 

解決方案:

一個鮮為人知的秘密,border-radius可以單獨設置水平和垂直的半徑,只需要用一個斜杠(/)分隔這二個值就行。此外我們還要知道border-radius不僅可以接受長度值還可以接受百分比值。

width: 150px;height: 100px;border-radius: 50%/50%;    //簡寫屬性:border-radius:50%
background: brown;

只需這一行簡單的代碼就可以完成自適應的橢圓了。很神奇吧。

 

半橢圓

我們知道border-radius是個簡寫屬性,它得展開式:

border-top-left-radius

border-top-right-radius

border-bottom-right-radius

border-botom-left-radius

這四個字如上的順序,從左上角開始順時針應用到元素其他三個角上。

但是真正簡介的寫法還是使用border-radius這個簡寫屬性,只需對應上面的規則,用空格分開多個值,也能達到展開式的效果。

如果只提供了三個值:1 2 3 則第4個值和第2個值相同。如果只提供了二個值:1 2 則1 3相同,2 4值相同。

我們甚至可以為四個角設置不同的水平和垂直半徑,方法就是在斜杠前指定一到四個值,斜杠后指定一到四個值。

    width: 150px;height: 100px;border-radius:  50%/0 0 100% 100%;background: brown;

變換一下:

    width: 150px;height: 100px;border-radius:  50%/100% 100% 0 0;background: brown;

來一個小紅帽:

    width: 150px;height: 100px;border-radius:  50%/50% 50% 0 0;background: brown;

 

    width: 150px;height: 100px;border-radius:   100% 0  0 100%/ 50%;background: brown;//沿着縱軸切開的橢圓

同理,可以得出:

    width: 150px;height: 100px;border-radius: 0  100% 100% 0/ 50%;background: brown;

 

 

四分之一的橢圓

那么,有辦法得到四分之一橢圓呢?我們從效果圖看出,創建一個四分之一的橢圓,只要一個角的水平和垂直半徑值都需要是100%,

而其他三個角都不能設圓角。因為四個角的水平和垂直半徑方向上是相同的,所以不需要用斜杠語法了。

所以

 

    width: 150px;height: 100px;border-radius:0 0 100% 0;background: brown;

效果如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM