代碼展示:利用CSS3實現內凹圓角

來源:互聯網
上載者:User
本篇文章主要介紹了CSS3實現內凹圓角的執行個體代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

圓角,大家一定都會做,border-radius, 內凹圓角如何??

可以拿個白色圓盒子蓋住方形盒子的大半邊實現,但是這樣,是不透明的,背景發生改變時,就要改遮蓋盒子的顏色,或者背景是漸層,改起來更麻煩,或背景是圖片等等,就直接不太好改了,這種方法就有局限性。 說白了就是遮蓋的那部分不透明以後,自適應性不強。

這裡介紹一個用放射狀漸層實現的內凹圓角,可以解決上述問題。可以用 CSS 產生一個背景透明的內凹圓角。

1. 基本線性漸層


p { height:100px; width:200px; background-image:linear-gradient(90deg,red,blue);}<p>從左至右的紅到藍漸層</p>

2. 加百分比調整漸層範圍


 p { height:100px; width:200px; background-image:linear-gradient(90deg,red 20%,blue 80%);}<p></p>

3. 濃縮漸層範圍,直至重合,形成一個紅藍分隔的兩個色塊


 p { height:100px; width:200px; background-image:linear-gradient(90deg,red 50%,blue 50%);} <p></p>

4. 顏色是可以設定透明色的,transparent, 將紅色改成透明色,可以看到只有藍色的色塊了。


 p { height:100px; width:200px; background-image:linear-gradient(90deg,transparent 50%,blue 50%);}<p></p>

5. 同理聯想到放射狀漸層,同樣縮小漸層圈,直至重合,靠近圓心的顏色設成transparent。


 /* 放射狀漸層主體 */ .raidal { height:100px; width:100px; background:radial-gradient(transparent 50%,blue 50%);} <p class='raidal'></p>

6. 放射狀漸層是可以設定半徑圓心位置的,所以設到左頂角,left top 調整半徑大小為 200px,就發現背景透明的內凹圓角實現了。

應用時可以用虛擬元素設定,然後用絕對位置,子絕父相,調整位置,組合成想要的效果


 /* 放射狀漸層主體 */ .raidal1 { height:100px; width:100px; background:radial-gradient(200px at left top,transparent 50%,blue 50%);}<p class='raidal1'></p>

7. 同理四個方向, 調整圓心位置即可


 /* 左上 */ .raidal1 { height:100px; width:100px; background:radial-gradient(200px at left top,transparent 50%,blue 50%);}/* 右上 */ .raidal2 { height:100px; width:100px; background:radial-gradient(200px at right top,transparent 50%,blue 50%);}/* 右下 */ .raidal3 { height:100px; width:100px; background:radial-gradient(200px at right bottom,transparent 50%,blue 50%);}/* 左下 */ .raidal4 { height:100px; width:100px; background:radial-gradient(200px at left bottom,transparent 50%,blue 50%);} <p class='raidal1'></p> <p class='raidal2'></p> <p class='raidal3'></p> <p class='raidal4'></p>

8. 同樣,不想這麼圓角,也是可以橢圓的,半徑設兩個參數, 就是橢圓。


 /* 左上 */ .ellipse { height:100px; width:100px; background:radial-gradient(200px 300px at left top,transparent 50%,blue 50%);} <p class='ellipse'></p>

放射狀漸層有很多參數大家可以自己再嘗試調整,可以出現各種奇怪的形狀,這裡就不示範了。相對來說,內凹圓角就夠用了

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.