1. 程式人生 > 其它 >CSS3圓角 border-radius

CSS3圓角 border-radius

HTML5學堂:圓角是用一段與角的兩邊相切的圓弧替換原來的直角。在原有網頁當中,如果需要實現圓角效果,可以使用背景圖的實現,但是這樣會造成背景圖大小和數量的增加,從而使得伺服器請求次數和需要載入的程式碼量增加,降低載入速度。

CSS3圓角的優勢:

CSS3提供了更簡便快捷的屬性border-radius之後,實現邊框圓角就非常的簡單了,而且多了很多個優點,一方面減少了圖片的HTTP的請求,一方面提高了網站的效能。還有一方面就是減少程式碼,提高了維護性。既然CSS3圓角提供了那麼多的好處,我們看看CSS3的border-radius是如何實現圓角的。我們先來看看基本語法。

基本語法:

border-radius : none | <length>{1,4} [/ <length>{1,4} ]?

語法分析:

語法中符號的含義:

length的取值範圍不為負數。

“[ ]”代表“可選”

“|”代表“或”

“{}”裡的數字代表屬性值的數量範圍

“?”代表“一次”

“*”表示可出現多次

圓角書寫方式:

在實現圓角之前,我們先來看幾個效果,接著看CSS3圓角是如何實現的?

效果一: 扇形

結構程式碼:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title> h5course </title>
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<body>
<div class=" h5course "></div>
</body>
</html>

CSS樣式:

. h5course {
border: 200px solid transparent;
width: 0;
border-radius: 200px;
border-top-color: red;
}

效果如下:

效果二:橢圓形

結構程式碼:

<div class="h5course"></div>

CSS樣式:

html {
background: #000;
}
.h5course {
width: 400px;
height: 200px;
border: 2px solid #f36;
border-radius: 50% / 50%;
background: #ccc;
line-height: 200px;
text-align: center;
font-size: 25px;
font-family: 微軟雅黑"
}

效果如下:

如上例子的圓角是如何實現的呢?之前大家回想一下,margin和padding的書寫順序。是不是四種寫法,

1. margin一個值,表示盒模型的margin的上,下,左,右四個方向值

2. margin兩個值,表示的是margin第一個值為margin的上,下方向值。第二個值為margin的左,右方向值。

3. margin三個值,表示的是margin第一個值為margin的上方向值。第二個值為margin的左,右方向值。第三個值為margin的下方向值.

4. Margin四個值,表示的是margin第一個值為margin的上方向值。第二個值為margin的右方向值。第三個值為margin的下方向值。第四個值為margin的左方向值.

而border-radius的書寫順序也是和margin類似,分別表示左上角、右上角、右下角、左下角。“/”前是指圓角的水平半徑,而“/”後是指圓角的垂直半徑,他們兩邊都遵循(margin四個值)的順序原則。

1.只有一個值,那麼左上角、右上角、右下角、左下角四個值相等。

2.有兩個值,那麼左上角等於右下角,並且取第一個值;右上角等於左下角,並且取第二個值

3.有三個值,其中第一個值是設定左上角,而第二個值是右上角、左下角,並且他們會相等,第三個值是設定右下角。

4.有四個值,其中第一個值是設定左上角。而第二個值是右上角第三個值右下角,第四個值是設定左下角。

我們再來看一個例項,一步一步實現圓角效果:

<div class="h5course"></div>

為了更好的看出效果,我們給這個demo新增一點樣式:

.h5course {
width: 150px;
height: 80px;
border: 2px solid #f36;
background: #ccc;
}

這時候在該元素上新增border-radius屬性設定。

.h5course {
width: 150px;
height: 80px;
border: 2px solid #f36;
background: #ccc;
border-radius: 10px 15px 20px 30px / 20px 30px 10px 15px;
}

圓角相容性:

border-radius只有在以下版本的瀏覽器:Firefox4.0+、Safari5.0+、Google Chrome10.0+、Opera10.5+、IE9+支援border-radius標準語法格式,對於老版的瀏覽器,border-radius需要根據不同的瀏覽器核心新增不同的字首,比說Mozilla核心需要加上“-moz”,而Webkit核心需要加上“-webkit”等,那麼我為了能相容各大核心的老版瀏覽器,一般加這些核心字首的。

.h5course {
width: 150px;
height: 80px;
border: 2px solid #f36;
background: #ccc;
-webkit- border-radius: 10px 15px 20px 30px / 20px 30px 10px 15px;
-moz - border-radius: 10px 15px 20px 30px / 20px 30px 10px 15px;
border-radius: 10px 15px 20px 30px / 20px 30px 10px 15px;
}

歡迎溝通交流~HTML5學堂