CSS3邊框
CSS3?邊框
CSS3 邊框
用CSS3,你可以創(chuàng)建圓角邊框,添加陰影框,并作為邊界的形象而不使用設(shè)計(jì)程序,如Photoshop。
在本章中,您將了解以下的邊框?qū)傩裕?/p>
Border-color(設(shè)置邊框顏色)
?Border-image(通過圖片設(shè)置為邊框)?
Border-radius(邊框的半徑)?
box-shadow(陰影效果)
而我使用的瀏覽器版本為:IE8,? FireFox10.0.9,? Chrome?22.0.1229.94,?Safari 5.1.7, Opera 12.50。。。基本都是最新版本.
編程環(huán)境:VS2010旗艦版? ASP.NET
我們之前要給一個(gè)div加上邊框時(shí),我們會這樣寫
<html> <head> <style type="text/css"> .border_test { border:5px solid red; } </style> </head> <body> <div class='border_test'>常用的邊框樣式</div> </body> </html>
既然我們已經(jīng)可以設(shè)置邊框顏色了,為什么還要border-color呢?因?yàn)镃SS3的border有所不同.
使用border-color如果你設(shè)置了邊框?qū)挾仁荴。那么你就可以在這個(gè)這個(gè)邊框上使用X種顏色,每種顏色顯示1px的寬度.
(ps:如果你邊框?qū)挾仁?0px,而你只設(shè)置了5種顏色,那么最后一種顏色將會填充剩下的寬度)
具體寫法看下面代碼
<html> <head> <style type="text/css"> .border_test { border:5px solid red; border-color:red blue green black; } </style> </head> <body> <div class='border_test'>CSS3 Border-color樣式</div> </body> </html>
但是結(jié)果和我們想的并不一樣.
?我們只看到了4個(gè)邊框分別對應(yīng)4種顏色.分別是 上 右 下 左。
當(dāng)然,如果我們只輸入3種顏色,中間的顏色就對應(yīng) 左和右,具體的自己試一下吧.
那么之前我們說的每像素一種顏色的效果呢?別著急."那么你就可以在這一邊框上使用X種顏色".因?yàn)閎order-color是針對整個(gè)4條邊框的,所以不是針對某條邊框的.
如果我們需要做到上面的效果,可以針對某一條邊框設(shè)置。他們分別是:
border-top-colorborder-right-colorborder-bottom-colorborder-left-color
所以我們需要改一下代碼
<html> <head> <style type="text/css"> .border_test { border:5px solid red; -moz-border-top-colors:Blue Yellow Red Black Green; -moz-border-bottom-colors:Blue Yellow Red Black Green; -moz-border-right-colors:Blue Yellow Red Black Green; -moz-border-left-colors:Blue Yellow Red Black Green; } </style> </head> <body> <div class='border_test'>CSS3 Border-color樣式</div> </body> </html>
有人會問了,為什么前面加了個(gè)-moz-,這個(gè)可以通過點(diǎn)擊傳送門了解.
看完《傳送門》后,我們在對代碼做寫修改.
.border_test { border:5px solid red; -moz-border-top-colors:Blue Yellow Red Black Green; -ms-border-top-colors:Blue Yellow Red Black Green; -wekit-border-top-colors:Blue Yellow Red Black Green; -o-border-top-colors:Blue Yellow Red Black Green; border-top-colors:Blue Yellow Red Black Green; }
但是卻發(fā)現(xiàn),只有火狐上出現(xiàn)了效果,也就是說,border-邊框-colors這個(gè)屬性只有在火狐上可用,其他的不兼容.可惜了..
Border-image
?
border-image主要是用圖片來填充邊框.
border-image的分解屬性分別為
border-image-source 指定border的背景圖的url
border-image-slice 設(shè)置圖片如何切割的屬性,非定位!
border-image-width 定義border-image的顯示區(qū)域的
border-image-repea
下面我們來逐個(gè)解析.
border-image-source
這個(gè)是指定border的背景圖的url, 例
border-image-source :url(../images/border.gif);
這里可以設(shè)置為none,也就是無背景圖
border-image-slice
設(shè)置圖片如何切割的屬性,(重點(diǎn)理解)他的值是四個(gè)數(shù)值, 沒單位(實(shí)際上是已經(jīng)固定是px了, 注意, 這個(gè)值不能是負(fù)值或大于圖片的尺寸), 例如: border-image-slice:1 2 3 4; 你想得沒錯(cuò), 同樣對應(yīng)的是”上右下左”,將這幾個(gè)數(shù)值, 把背景圖片, 切割開來,具體一會再說
border-image-width
定義border-image的width, 這個(gè)是定義border-image的顯示區(qū)域的(這個(gè)只是在w3c上描述的, 但在實(shí)際測試過, 設(shè)置這個(gè)屬性沒有作用, 但是border-width能生效)
border-image-repeat;
repeat有三個(gè)值選擇
[ stretch | repeat | round ]:拉伸 | 重復(fù) | 平鋪 (其中stretch是默認(rèn)值。)
好了,我們回頭來看slice,也就是切割.= =說實(shí)話,不知道該怎么講,還是上圖吧.
嗯- -在這里我要借別人的2張圖,因?yàn)槲矣谩爱媹D”花了好久,實(shí)在看不下去。。。最討厭畫畫了.
左上圖是一個(gè)這樣的樣式.border-image-slice:10 15 20 25; 他會將圖片分割為右上邊這樣的9宮格圖片.
left,top,right,bottom分別是你設(shè)置的距離,這一部分會被抽取出來作為邊框.
top-left,? top-right, bottom-left, bottom-right同樣會被抽取出來,與left,top,right,bottom不同的是,他們不會受repeat,stretch,round的影響.
而left,top,right,bottom,則有可能因?yàn)槔焓裁吹亩淖儗挾群透叨?不知道這樣說會不會容易理解點(diǎn)?
下面看代碼
<html> <head> <style type="text/css"> .border_test { -webkit-border-image: url(6.jpg) 0 12 0 12 stretch stretch; -moz-border-image: url(6.jpg) 0 12 0 12 stretch stretch; -o-border-image: url(6.jpg) 0 12 0 12 stretch stretch; -ms-border-image: url(6.jpg) 0 12 0 12 stretch stretch; -border-image: url(6.jpg) 0 12 0 12 stretch stretch; display: block; border-width: 0 12px; padding: 10px; text-align: center; font-size: 16px; text-decoration: inherit; color:white; } </style> </head> <body> <div class='border_test'>CSS3 Border-image樣式</div> </body> </html>
Border-radius
終于到圓角了,感覺花了那么多字去寫css3有點(diǎn)怪,因?yàn)楸緛砗芎唵蔚? -哈
border-radius
參數(shù):半徑,不可以是負(fù)數(shù),為0的話是直角
<html> <head> <style type="text/css"> .border_test { border:5px solid red; -moz-border-radius:15px; -ms-border-radius:15px; -wekit-border-radius:15px; -o-border-radiuss:15px; border-radius:15px; } </style> </head> <body> <div class='border_test'>CSS3 Border-radius樣式</div> </body> </html>
圓角效果是比較常見的,而且在FireFox,Chrome,Safari,Opera都支持圓角效果,可惜IE還是只能回老家喝粥.不過據(jù)說IE9支持了。沒4過.
相關(guān)屬性: border-top-right-radius , border-bottom-right-radius , border-bottom-left-radius , border-top-left-radius
分別對應(yīng)一個(gè)位置,需要注意的是,如果只有一個(gè),會變成4分之1圓角,如果這4個(gè)里其中一個(gè)為0,那就回變成直角- -這個(gè)我也很納悶.
box-shadow
最后一個(gè),陰影
<html> <head> <style type="text/css"> .border_test { border:5px solid red; -moz-box-shadow:5px 2px 6px black; -ms-box-shadow:5px 2px 6px black; -wekit-box-shadow:5px 2px 6px black; -o-box-shadow:5px 2px 6px black; box-shadow:5px 2px 6px black; } </style> </head> <body> <div class='border_test'>CSS3 Border-shadow樣式</div> </body> </html>
三個(gè)像素值和顏色分別是
??陰影水平偏移值(可取正負(fù)值);陰影垂直偏移值(可取正負(fù)值);陰影模糊值;陰影顏色
依然是IE回家喝粥,其他都可以。郁悶
CSS3-BORDER 也講完了,第一次寫博客,寫得感覺很差,不過以后自己忘記也好找點(diǎn)。
CSS3確實(shí)是個(gè)好東西,還有很多東西沒有寫出來。不過確實(shí)值得學(xué)習(xí)。。
把DEMO也放上來吧。