遺憾的是,簡(jiǎn)寫屬性(如border-color和border-style)并不總像你想得那么有用。
例如,網(wǎng)站建設(shè)人員可能想在所有h1元素上應(yīng)用一個(gè)粗的灰色實(shí)線邊框,不過只是底邊上有此邊框。如果只使用我們目前已經(jīng)討論過的屬性,應(yīng)用這樣一個(gè)邊框時(shí)會(huì)遇到很大困難。以下是兩個(gè)例子:
h1{border-bottom-width:thick;/*option#1*/
border-bottom-style:solid;
border-bottom-color:gray;}
h1{border-width:0 0 thick;/*option#2*/
border-style:none none solid;
border-color:gray;}
根據(jù)以上鍵入的規(guī)則,這兩種做法都很不方便。幸運(yùn)的是,還有一種更好的解決方法:
h1{border-bottom:thick solid gray;}
這只是向底邊邊框應(yīng)用值,而所有其他邊的邊框仍為其默認(rèn)值。由于默認(rèn)的邊框樣式為none,所以元素其他三個(gè)邊上不出現(xiàn)邊框。
網(wǎng)頁(yè)設(shè)計(jì),總共有4個(gè)這樣的簡(jiǎn)寫屬性。
border-top、border-right、border-bottom、border-left
值:[<border-width>||<border-style>||<border-color>]|inherit
初始值:對(duì)簡(jiǎn)寫屬性未定義
應(yīng)用于:所有元素
繼承性:無(wú)
計(jì)算值:見單個(gè)屬性(border-width等)
可以使用這些屬性創(chuàng)建一些復(fù)雜的邊框:
h1{border-left:3px solid gray;
border-right:black 0.25em dotted;
border-top:thick silver inset;
border-bottom:double rgb(33%,33%,33%)10px;)
可以看到,具體值的順序并不重要。以下三個(gè)規(guī)則會(huì)得到完全相同的邊框效果:
h1{border-bottom:3px solid gray;}
h2{border-bottom:solid gray 3px;}
h3{border-bottom:3px gray solid;}
還可以省略一些值,使用其默認(rèn)值,如下:
h3{color:gray;border-bottom:3px solid;}
由于沒有聲明任何邊框顏色,因此會(huì)應(yīng)用默認(rèn)值(元素的前最色)。要記住,如果沒有邊框樣式,默認(rèn)樣式值none會(huì)使得邊框不復(fù)存在。
相反,如果只設(shè)置了樣式,還是會(huì)得到一個(gè)邊框。假設(shè)網(wǎng)站設(shè)計(jì)者只想有一個(gè)樣式為dashed的上邊框,而且希望其寬度仍為默認(rèn)值medium,顏色與元素本身的文本顏色相同,在這種情況下,所需的就是以下標(biāo)記(見圖8-33):
p.roof{border-top:dashed;}另一個(gè)要注意的是,由于這些“單邊邊框”屬性只應(yīng)用到一個(gè)特定的邊,所以不可能進(jìn)行值復(fù)制——這是沒有任何意義的,每種值只能有一個(gè):也就是說(shuō),只能有一個(gè)寬度值、一個(gè)顏色值和一個(gè)邊框樣式。所以網(wǎng)頁(yè)設(shè)計(jì)不要為同一個(gè)類型聲明多個(gè)值:
h3{border-top:thin thick solid purple;}/*cwo width values——WRONG*/
在這種情況下,整個(gè)語(yǔ)句都將無(wú)效,用戶代理會(huì)將其全部忽略。