css3新增的三種邊框效果:1、邊框圖片“border-image”,可為邊框添加背景圖片;2、邊框圓角“border-radius”,可為邊框添加一個或多個圓角效果;3、邊框陰影“box-shadow”,可將一個或多個陰影添加到元素框上。
本教學操作環境:windows7系統、CSS3&&HTML5版、Dell G3電腦。
css3新增了三種邊框效果
#屬性 | 說明 | #CSS |
---|---|---|
border-image | 設定所有邊框圖像的速記屬性。 | 3 |
border-radius | 一個用來設定所有四個邊框- *-半徑屬性的速記屬性 | 3 |
box-shadow | 附加一個或多個下拉方塊的陰影 | 3 |
1、邊框圖片「border-image」
border-image屬可以為邊框新增背景圖片。現在所有主流瀏覽器最新版本都支援border-image屬性。
語法:
#說明:
border-image屬性需要定義3個方面的內容。
(1)圖片路徑。
(2)切割寬度:四邊的切割寬度,依序為上邊、右邊、下邊、左邊(順時針)。
(3)平鋪方式:有3種取值,分別為repeat、round和stretch。
在本節所有範例中,我們都是使用圖所示的這張90px×90px的圖片作為邊框的背景圖片。
程式碼範例:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <style type="text/css"> div { width:210px; height:150px; border:30px solid gray; border-image:url(img/border.png) 30 repeat; } </style> </head> <body> <div></div> </body> </html>
瀏覽器預覽效果如下圖所示。
分析:
從預覽效果我們可以知道,位於4角的數字1、3、7、9還是乖乖地位於4個角落。然後4條邊框的2、4、6、8會不斷地平鋪。
對於border-image屬性,我們總結如下:
(1)在製作邊框背景圖片時,應該製作4條邊,中間部分需要挖空。
(2)邊框背景圖片每條邊的寬度跟對應的邊框寬度(即border-width)應該相同。
2、邊框圓角「border-radius」
#border-radius屬性可以為邊框添加圓角效果
#border-radius 屬性定義元素角的半徑,透過CSS border-radius 屬性,可以實現任何元素的「圓角」樣式。
語法:
border-radius: none | length{1,4} [/ length{1,4}
其中每一個值可以是 數值或百分比的形式。
length/length 第一個lenght表示水平方向的半徑,而第二個表示垂直方向的半徑。
如果是一個值,那麼 top-left、top-right、bottom-right、bottom-left 四個值相等。
如果是兩個值,那麼 top-left和bottom-right相等,為第一個值,top-right和bottom-left值相等,為第二個值。
如果是三個值,那麼第一個值是設定top-left,而第二個值是top-right 和bottom-left 並且他們會相等,第三個值是設定bottom-right。
如果是四個值,那麼第一個值就是設定top-left,而第二個值是top-right 第三個值bottom-right 第四個值是設定bottom- left
除了上述的簡寫外,還可以和border一樣,分別寫四個角,如下:
border-top-left-radius: //左上角 border-top-right-radius: //右上角 border-bottom-right-radius: //右下角 border-bottom-left-radius: //左下角
分別是水平方向和垂直方向半徑,第二值省略的情況下,水平方向和垂直方向的半徑相等。
border-radius 只有在以下版本的瀏覽器:Firefox4.0 、Safari5.0 、Google Chrome 10.0 、Opera 10.5 、IE9 支援border-radius 標準語法格式,對於舊版的瀏覽器,border-radius 需要根據不同的瀏覽器核心添加不同的前綴,比說Mozilla 核心需要加上“-moz”,而Webkit 核心需要加上“-webkit”等,但是IE和Opera沒有私有格式,因此為了最大程度的兼容瀏覽器,我們需要設定如下:
-webkit-border-radius: 10px 20px 30px; -moz-border-radius: 10px 20px 30px; border-radius: 10px 20px 30px;
請將標準形式寫在瀏覽器私有形式之後。
範例:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="Keywords" content="关键词一,关键词二"> <meta name="Description" content="网站描述内容"> <meta name="Author" content="刘艳"> <title></title> <style> img { border-radius: 30px; margin: 100px; } </style> </head> <body> <img src="../images/photo.jpg" style="max-width:90%" alt="css3新增了哪三種邊框效果" > </body> </html>
#3、邊框陰影「box-shadow」
在css中,可使用box-shadow屬性實作邊框陰影效果,box-shadow屬性可以設定一個或多個下拉陰影的方塊。
語法
box-shadow: h-shadow v-shadow blur spread color inset;
可能的值:
值 | 说明 |
---|---|
h-shadow | 必需的。水平阴影的位置。允许负值 |
v-shadow | 必需的。垂直阴影的位置。允许负值 |
blur | 可选。模糊距离 |
spread | 可选。阴影的大小 |
color | 可选。阴影的颜色。 |
inset | 可选。从外层的阴影(开始时)改变阴影内侧阴影 |
注意:boxShadow 属性把一个或多个下拉阴影添加到框上。该属性是一个用逗号分隔阴影的列表,每个阴影由 2-4 个长度值、一个可选的颜色值和一个可选的 inset 关键字来规定。省略长度的值是 0。
box-shadow属性的使用
1、水平垂直偏移为0也可以有阴影
如果offset-x或offset-y值为0,则阴影在元素背后,此时给blur-radius值或spread值可以产生阴影效果。
例子:
第一个div通过设置blur-radius产生阴影效果。
第二个div通过设置spread正值产生阴影效果。
第三个div通过设置spread负值产生阴影效果。
但是有一点要注意:扩展阴影必须和阴影模糊半径配合使用。
我个人觉得应该是没有配合使用这一说,但不可能只设置扩展阴影,因为扩展阴影和阴影模糊的取值都可以为正。如果只有扩展阴影的话,会被浏览器当做模糊阴影来解析,所以也可以简单理解为“扩展阴影必须和阴影模糊半径配合使用”,如果只用扩展阴影,可以写成:box-shadow:0 0 0 1px;。
<style type="text/css"> div{ width: 100px; height: 100px; margin:50px; border: 10px dotted pink; display: inline-block; } .blur{ box-shadow: 0 0 20px ; /*box-shadow: 0 0 20px green;*/ /*也可以自定义颜色*/ } .spread-positive{ box-shadow: 0 0 20px 5px ; /* box-shadow: 0 0 20px 5px green;*/ /*也可以自定义颜色*/ } .spread-negative{ box-shadow: 0 0 20px -5px ; /* box-shadow: 0 0 20px -5px green;*/ /*也可以自定义颜色*/ } </style> <body> <div class="blur"></div> <div class="spread-positive"></div> <div class="spread-negative"></div> </body>
2、设置水平垂直偏移得到阴影效果
outset情况:水平垂直偏移为0,但是不设置blur和spread,看不到阴影,因为此时box-shadow的周长和border-box一样,所以可以通过设置偏移让阴影显示出来。
inset情况:水平垂直偏移为0,不设置blur和spread,同样看不到阴影,因为此时box-shadow的周长和padding-box一样,同样可通过设置偏移让阴影显示出来。
例子:
<style type="text/css"> div{ width: 100px; height: 100px; margin:50px; border: 10px dotted pink; display: inline-block; } .shadow0{box-shadow: 0 0;} .shadow1{box-shadow: 1px 1px;} .shadow10{box-shadow: 10px 10px;} .inset-shadow0{box-shadow: 0 0 inset;} .inset-shadow1{box-shadow: 1px 1px inset;} .inset-shadow10{box-shadow: 10px 10px inset;} </style> <body> <div class="shadow0"></div> <div class="shadow1"></div> <div class="shadow10"></div> <div class="inset-shadow0"></div> <div class="inset-shadow1"></div> <div class="inset-shadow10"></div> </body>
3、投影方式
投影方式默认是outset,即外部投影,可设置inset让向内投影。
例子:第一个div默认outset,第二个设置inset,第三个同时设置两个阴影可以更好的看到outset和inset的关系,第四个div可以看出inset阴影在背景之上,内容之下。
<style type="text/css"> div{ width: 100px; height: 100px; margin:50px; border: 10px dotted pink; display: inline-block; vertical-align: top; } .outset{ box-shadow: 10px 10px teal; } .inset{ box-shadow: 10px 10px teal inset; } .double{ box-shadow: 10px 10px teal inset,10px 10px teal; } .bg{ background-color: yellow; } </style> <body> <div class="outset"></div> <div class="inset"></div> <div class="double"></div> <div class="inset bg">inset阴影在背景之上,内容之下</div> </body>
4、如果元素同时指定border-radius属性,则阴影呈现相同的圆角。
<style type="text/css"> div{ width: 100px; height: 100px; margin:50px; border: 10px dotted pink; display: inline-block; border-radius: 50px; } .shadow{ box-shadow: 0 0 10px 10px green; } </style> <body> <div class="shadow"></div> </body>
以上是css3新增了哪三種邊框效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!