CSS border系列


本文更新版鏈接

 

一、border

關於border的3個屬性,分別為border-width、border-style、border-color。

其中,border-color默認為元素內容的前景色;border-width默認為關鍵字medium,但是border-style默認值為none;所以,不指定border-style,邊框將不存在

 

關於border-color

transparent,據說特定情況下有奇效,需要知道有這樣一個可選值。

white,白色的dotted邊框,有時候會有奇效。

比如:

更確切地說,應該是顏色與父元素的背景顏色一樣的dotted/dashed邊框。

 

8種border-style

(只有記住了,才能在需要的時候合理使用。)

 

關於mixed border

利用CSS的層疊,我們甚至可以為四個方向上的邊框分別設置不同的寬度、樣式和顏色,取決於具體情況。

 

小tips:邊框模擬,等高布局

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title>邊框模擬等高布局</title>
 6         <style>
 7             div.container {
 8                 margin-left: 200px;
 9                 overflow: hidden;
10             }
11 
12             div.box {
13                 width:300px;
14                 float: left;
15                 
16             }
17 
18             div.box1 {
19                 background-color: brown;
20                 border-right: 300px solid green;
21                 margin-right: -300px;
22             }
23 
24             p {
25                 margin-bottom: 50px;
26             }
27 
28         </style>
29     </head>
30     <body>
31         <div class="container">
32             <div class="box box1">
33                 <p>box1</p>
34                 <p>box1</p>
35                 <p>box1</p>
36                 <p>box1</p>
37                 <p>box1</p>
38                 <p>box1</p>
39                 <p>box1</p>
40             </div>
41             <div class="box box2">
42                 <p>box2</p>
43                 <p>box2</p>
44                 <p>box2</p>
45             </div>
46         <div class="container">
47     </body>
48 </html>
View Code

其實現原理為:左列邊框寬度與margin負值相結合,讓右邊框成為右列的背景。

 

二、border-radius

語法規則:

border-radius:a b c d; 順序依次為上左、上右、下右、下左。(順時針方向)

border-radius:a b c d/a b c d ;第一組為水平數值,第二組為垂直數值。

border-top-left-radius:a b; 單個圓角的設立。

定義單個圓角時,一定要先上下、后左右,否則無效。

 

注意:

圓角生效並不以邊框的存在為前提,也就是說,即使沒有邊框,也能設立圓角。

 

小tips:border-radius:50%

 

三、border-image

與border-radius不同,border-image以border的存在為前提;其本質是將border-style替換成image。

語法規則:

border-image-source

支持none和url兩種選擇;(如果是none的話,下面就不用看了。。。)

border-image-slice

按top、right、bottom、left的順序指定九宮格的切法;支持純數字和百分數。

(純數字自帶px單位;百分數以圖像的寬高為基准計算。)

fill,可選;默認情況下第九區是不顯示的;指定了fill才會顯示出來;在border-image-slice中指定。

border-image-width

按top、right、bottom、left的順序指定border-image-width,覆蓋border-width;可選。

經測試,border-image-width大於border-width時,會向內擴展(外面那條線不變,向里面擴展增加寬度),但是只是它的獨角戲,除了它自己發生了變化之后,其它任何東西都不會變化;它會侵入padding區甚至內容區。

border-image-width小於border-width時,會向外收縮(外面那條線不變,里面這條線向外收縮),與padding區或者內容區留出空隙。

可以為0,即border-image不存在;但不能為負值。

(個人建議,此屬性看看就好,就讓它默認等於邊框的寬度吧。)

border-image-outset

按top、right、bottom、left的順序指定圖像向外移動的距離;可選;支持像素距離和純數字。

像素距離好理解,20px就是移動20px的意思;純數字是指border-width的倍數。(注意,是border-width,不關border-image-width的事。)

請注意,這里用的是移動這個詞,並不是擴展。

border-image-repeat

按top、right、bottom、left的順序指定如何填充邊框的空白;接受兩個值,一個水平方向,一個垂直方向。

默認stretch(拉伸),可選repeat(重復)和round(平鋪)。

 

這里只是一些我對這些屬性使用方法上的總結,並沒有對屬性本身的含義與機制作出說明。

關於這5個屬性的具體說明,推薦一篇文章,css3:border-image邊框圖像詳解,寫得很好,非常仔細,我這么小白都看懂了。

 

outline

outline-width、outline-style、outline-color;語法和表現都和border一樣,但是不占任何文檔空間。

outline-offset,定義outline和border(padding、content area)的距離,與margin沒有關系。

 

四、box-shadow

語法規則:

h-shadow(必需,水平陰影的位置,可負);  

v-shadow(必需,垂直陰影的位置,可負);  

blur(可選,模糊距離);

spread(可選,陰影的尺寸);  

color(可選,陰影的顏色);  

outset(默認)/inset(可選,將外部陰影改為內部陰影)。

 

box-shadow應用

CSS:

1 .container {
2     width:200px;
3     height:100px;
4     background-color: #ccc;
5     border:10px solid red;
6     border-radius: 10px;
7     box-shadow: 0 0 0 10px green; 
8 }

效果:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title></title>
 6         <style>
 7             body {
 8                 margin:0;
 9             }
10             
11             .container {
12                 width:200px;
13                 margin: 0 auto;
14                 box-shadow: 0 4px 8px rgba(0,0,0,0.3),0 8px 16px rgba(0,0,0,0.5) ;
15             }
16 
17             p {
18                 position: absolute;
19                 margin: -40px 0 0 50px ;
20             }
21 
22         </style>
23      <body>
24      <div class="container">
25         <img src="http://imgsrc.baidu.com/forum/w%3D580/sign=0c101fe665380cd7e61ea2e59145ad14/f9a3492762d0f7032de1758a08fa513d2797c542.jpg" alt="A picture" style="width:200px;height:300px" />
26         <p>I am "萌萌噠".</p>
27     </div>
28     </body>
29 </html>
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM