CSS3輕松實現(xiàn)圓角效果

在Web前端頁面實現(xiàn)圓角效果,CSS3幫你輕松實現(xiàn),一個人人皆知的屬性。
CSS3圓角的優(yōu)點(diǎn)
傳統(tǒng)的圓角生成方案,必須使用多張圖片作為背景圖案。CSS3的出現(xiàn),使得我們再也不必浪費(fèi)時間去制作這些圖片了,而且還有其他多個優(yōu)點(diǎn):
* 減少維護(hù)的工作量。圖片文件的生成、更新、編寫網(wǎng)頁代碼,這些工作都不再需要了。
* 提高網(wǎng)頁性能。由于不必再發(fā)出多余的HTTP請求,網(wǎng)頁的載入速度將變快。
* 增加視覺可靠性。某些情況下(網(wǎng)絡(luò)擁堵、服務(wù)器出錯、網(wǎng)速過慢等等),背景圖片會下載失敗,導(dǎo)致視覺效果不佳。CSS3就不會發(fā)生這種情況。
圓角邊框的繪制是Web頁面和Web應(yīng)用程序中經(jīng)常用來美化頁面效果的手法之一。今天,小編為大家介紹CSS3提供的可以將矩形變?yōu)閳A角矩形的一個屬性
本節(jié)涉及到的CSS3屬性為:
- border-radius
一、圓角屬性的取值:
CSS3 使用border-radius屬性設(shè)置圓角效果
該屬性可以通過設(shè)置圖片或塊級元素四個角的圓角半徑像素數(shù)來實現(xiàn)該效果。W3C規(guī)定該屬性的可能取值為:
- none,默認(rèn)值,表示元素沒有圓角效果
- length,由浮點(diǎn)數(shù)字和單位標(biāo)識組成的長度值
- %,由百分比設(shè)置的圓角值
該屬性可以分別設(shè)置元素的四個圓角效果,采用下列格式來實現(xiàn)。
格式:border-radius: 左上角 右上角 右下角 左下角;
通常,四個方向的角半徑均采用length取值來實現(xiàn),該取值必須為浮點(diǎn)數(shù)字和單位標(biāo)識共同組成。同時規(guī)定,該取值不得取負(fù)數(shù)。
例1:利用整數(shù)來實現(xiàn)圓角取值。
div{ width: 200px; height: 150px; border: solid 1px #aaaaaa; border-radius: 10px 5px 10px 5px; background-color: #ff5857; }
上述實例設(shè)置了一個div塊級元素,其寬度為200px,高度為150px。為了能夠看到其圓角效果,增加了顏色為#ff5857的背景顏色,并且添加了1px大小的邊框,其邊框為實線,邊框顏色為#aaaaaa。最后設(shè)置其圓角效果,左上角和右下角均為10px,右上角和左下角均為5px。
下面我們通過圖示的形式,以左上角為10像素為例,來看一下這10元素是指哪段距離。一個角的圓角效果包括兩部分:“水平角半徑”和“垂直角半徑”。一個角的取值為一個數(shù)據(jù),表示其“水平角半徑”和“垂直角半徑”是相等的。
水平角半徑與垂直角半徑相等
看來,border-radius屬性的取值應(yīng)該為四個值,表示四個方向的圓角幅度。若該屬性在取值時,取值個數(shù)小于四個,又應(yīng)該如何理解呢?
例2:查看下列CSS代碼。
(1)border-radius: 10px 5px 15px 20px;
(2)border-radius: 10px 5px 15px;
(3)border-radius: 10px 5px;
(4)border-radius: 10px;
上述四組代碼中,只有組(1)提供了完全符合格式的四個數(shù)據(jù),其他三組均只提供了小于四個的數(shù)據(jù)。這種情況下,數(shù)據(jù)依然按照“左上角 右上角 右下角 左下角”的順序進(jìn)行排列,沒有涉及到的角方向按照其對角的圓角數(shù)據(jù)進(jìn)行設(shè)置。
因此,組(2)的數(shù)據(jù)表示:左上角為10px,右上角為5px,右下角為15像素,左下角為右上角的像素設(shè)置,即5px。請同學(xué)們根據(jù)這樣的方法,理解一下組(3)的圓角含義。
組(4)就設(shè)置了一個數(shù)據(jù),這表示四個方向的角半徑均為10px。
二、獨(dú)立設(shè)置元素的四個圓角效果:
若只想設(shè)置一個塊級元素右上角的圓角效果,該如何實現(xiàn)呢?這里W3C為border-radius屬性派生出了表示四個方向的獨(dú)立圓角效果的子屬性。
- border-top-left-radius, 定義左上角的圓角效果
- border-top-right-radius, 定義右上角的圓角效果
- border-bottom-right-radius, 定義右下角的圓角效果
- border-bottom-left-radius, 定義左下角的圓角效果
上述四個子屬性的取值規(guī)則和border-radius屬性的取值規(guī)則是完全相同的。
例3:設(shè)置p標(biāo)記的圓角效果,其中左下角沒有圓角效果,其他三個方向角的圓角效果均為25px。
方法1:利用border-radius屬性統(tǒng)一設(shè)置。
p{border-radius: 25px 25px 25px 0;}
方法2:利用border-radius屬性的派生子屬性設(shè)置。
p{ border-top-left-radius: 25px; border-top-right-radius: 25px; border-bottom-right-radius: 25px; }
方法3:利用border-radius屬性設(shè)置所有角方向均為25px,再利用border-radius屬性的派生子屬性設(shè)置左下角沒有圓角效果。
p{ border-radius: 25px; border-bottom-left-radius: none; }
三、設(shè)置水平角半徑和垂直角半徑不同的圓角效果
W3C也提供了兩個角半徑不相同的圓角效果設(shè)置方式,這里依然以左上角為例,來展示兩個角半徑不同的設(shè)置方式。
格式:border-top-left-radius:水平角半徑/垂直角半徑;
上述格式中,兩個方向的角半徑之間利用斜杠(/)間隔。
例4:設(shè)置div塊級元素的左上角圓角效果為:水平角半徑50px,垂直角半徑25px。
div{border-top-left-radius: 50px/25px;}
水平角半徑與垂直角半徑不相等
例5:設(shè)置div塊級元素為一個半徑為100px的正圓形。
div{ width: 200px; height: 200px; background-color: #ff5857; border: solid 1px #aaaaaa; border-radius: 100px; }
上述代碼中將塊級元素的圓角效果半徑設(shè)置為寬度或高度的一半,這樣就可以得到一個半徑為寬度或高度的一半的正圓形。
例6:設(shè)置div塊級元素為一個長半軸為100px,短半軸為75px的橢圓形。
div{ width: 200px; height: 150px; background-color: #ff5857; border: solid 1px #aaaaaa; border-radius: 100px/75px; }
上述代碼中將塊級元素的水平角半徑設(shè)置為寬度的一半,垂直角半徑設(shè)置為高度的一半。由于這個塊級元素的寬度和高度不一樣,因此就可以得到一個橢圓形。
四、利用百分比實現(xiàn)圓角效果:
W3C規(guī)定,同樣可以使用百分比來實現(xiàn)塊級元素的圓角效果。這里,百分比值是相對于塊級元素的寬度或高度來作為依據(jù)的。水平角半徑的大小相對于塊級元素的寬度值依據(jù),垂直角半徑的大小相對于塊級元素的高度值依據(jù)。
例7:查看下列CSS代碼。
div{ width: 200px; height: 200px; border-radius: 20%; }
上述代碼中,div標(biāo)記的圓角效果中,水平角半徑為寬度的20%,即200px * 20% = 40px。垂直角半徑為高度的20%,也為40px。
例8:查看下列代碼。
div{ width: 200px; height: 100px; border-radius: 20%; }
上述代碼中,div標(biāo)記的圓角效果中,水平角半徑為寬度的20%,即200px * 20% = 40px。垂直角半徑為高度的20%,即100px * 20% = 20px。
也就是說,只要border-radius的取值為50%,則當(dāng)寬度和高度相同時,得到一個正圓形;當(dāng)寬度和高度不相同時,得到一個橢圓形。
總結(jié)
以上所述是小編給大家介紹的CSS3輕松實現(xiàn)圓角效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
- 這篇文章主要介紹了CSS3使用border-radius屬性制作圓角,并附上示例代碼,推薦給有相同需求的小伙伴。2014-12-22
IE系列不支持CSS的圓角border-radius等屬性的解決方案
IE系列瀏覽器不支持CSS的圓角(border-radius)等CSS3屬性,如何解決這個問題呢?百度了一下,發(fā)現(xiàn)有個開源的插件可以解決此問題2014-09-15CSS3實現(xiàn)圓角、陰影、透明效果并兼容各大瀏覽器
圓角、陰影、透明的實現(xiàn)方法有很多,之前的獲取比較復(fù)雜,用CSS3就方便很多了,而且對瀏覽器的支持性也比較好,下面簡單為大家介紹下2014-08-08- CSS3圓角技術(shù)能非常好的美化你的頁面效果,而且避免了使用圖片輔助,一則省去了制作圖片的時間,二則省去了瀏覽器加載圖片造成的延遲和帶寬2014-05-07
- 這篇文章主要介紹了css3圓角邊框和邊框陰影示例,需要的朋友可以參考下2014-05-05
- css3自定義漸變圓角按鈕樣式分享,大家參考使用吧2013-12-27
jQuery+css3實現(xiàn)的超酷無圖片圓角tab選項卡切換效果
依靠CSS3實現(xiàn)了Tab選項卡標(biāo)簽的圓角效果,無需圖片2013-09-10純CSS3實現(xiàn)的圓角彩色多功能超酷導(dǎo)航菜單效果
無需任何JS代碼就可以實現(xiàn)圓角彩色的多功能導(dǎo)航按鈕,簡潔大方2013-08-26純CSS3實現(xiàn)的紫色性感華麗帶有圓角效果的登錄表單效果
無需任何JS,表單界面豪華靚麗,帶有圓角效果,輸入框也非常高雅2013-07-24CSS3通過樣式定義制作的50個圓角漸變效果的網(wǎng)頁按鈕
無需任何圖片和JS代碼,完全通過樣式定義即可實現(xiàn)如此漂亮的圓角按鈕,每一個按鈕都各有特點(diǎn)2013-07-24