我們了解了CSS的語法,但要想在浏覽器中顯示出效果,就要讓浏覽器識別並調用。當浏覽器讀取樣式表時,要依照文本格式來讀,這裡介紹四種在頁面中插入樣式表的方法:鏈入外部樣式表、內部樣式表、導入外表樣式表和內嵌樣式。
1. 鏈入外部樣式表
鏈入外部樣式表是把樣式表保存為一個樣式表文件,然後在頁面中用<link>標記鏈接到這個樣式表文件,這個<link>標記必須放到頁面的<head>區內,如下:
<head>
……
<link href="mystyle.css" rel="stylesheet" type="text/css" media="all">
……
</head>
上面這個例子表示浏覽器從mystyle.css文件中以文檔格式讀出定義的樣式表。rel=”stylesheet”是指在頁面中使用這個外部的樣式表。type=”text/css”是指文件的類型是樣式表文本。href=”mystyle.css”是文件所在的位置。media是選擇媒體類型,這些媒體包括:屏幕,紙張,語音合成設備,盲文閱讀設備等。
一個外部樣式表文件可以應用於多個頁面。當你改變這個樣式表文件時,所有頁面的樣式都隨之而改變。在制作大量相同樣式頁面的網站時,非常有用,不僅減少了重復的工作量,而且有利於以後的修改、編輯,浏覽時也減少了重復下載代碼。
樣式表文件可以用任何文本編輯器(例如:記事本)打開並編輯,一般樣式表文件擴展名為.css。內容是定義的樣式表,不包含HTML標記,mystyle.css這個文件的內容如下:
hr {color: sienna}
p {margin-left: 20px}
body {background-image: url("images/back40.gif")}
/*定義水平線的顏色為土黃;段落左邊的空白邊距為20象素;頁面的背景圖片為images目錄下的back40.gif文件*/
2. 內部樣式表
內部樣式表是把樣式表放到頁面的<head>區裡,這些定義的樣式就應用到頁面中了,樣式表是用<style>標記插入的,從下例中可以看出<style>標記的用法:
<head>
……
<style type="text/css">
hr {color: sienna}
p {margin-left: 20px}
body {background-image: url("images/back40.gif")}
</style>
……
</head>
注意:有些低版本的浏覽器不能識別style標記,這意味著低版本的浏覽器會忽略style標記裡的內容,並把style標記裡的內容以文本直接顯示到頁面上。為了避免這樣的情況發生,我們用加HTML注釋的方式(<!-- 注釋 -->)隱藏內容而不讓它顯示:
<head>
……
<style type="text/css">
<!--
hr {color: sienna}
p {margin-left: 20px}
body {background-image: url("images/back40.gif")}
-->
</style>
……
</head>
3. 導入外部樣式表
導入外部樣式表是指在內部樣式表的<style>裡導入一個外部樣式表,導入時用@import,看下面這個實例:
<head>
……
<style type=”text/css”>
<!--
@import “mystyle.css”
其他樣式表的聲明
-->
</style>
……
</head>
例中@import “mystyle.css”表示導入mystyle.css樣式表,注意使用時外部樣式表的路徑。方法和鏈入樣式表的方法很相似,但導入外部樣式表輸入方式更有優勢。實質上它相當於存在內部樣式表中的。
注意:導入外部樣式表必須在樣式表的開始部分,在其他內部樣式表上面。
4. 內嵌樣式
內嵌樣式是混合在HTML標記裡使用的,用這種方法,可以很簡單的對某個元素單獨定義樣式。內嵌樣式的使用是直接將在HTML標記裡加入style參數。而style參數的內容就是CSS的屬性和值,如下例:
<p style="color: sienna;margin-left: 20px;">
這是一個段落
</p>
<!--這個段落顏色為土黃,左邊距為20象素-->
在style參數後面的引號裡的內容相當於在樣式表大括號裡的內容。
注意:style參數可以應用於任意BODY內的元素(包括BODY本身),除了BASEFONT、PARAM和SCRIPT。
5. 多重樣式表的疊加
上一章裡我們已經提到樣式表的層疊順序,這裡我們討論插入樣式表的這幾種方法的疊加,如果在同一個選擇器上使用幾個不同的樣式表時,這個屬性值將會疊加幾個樣式表,遇到沖突的地方會以最後定義的為准。例如,我們首先鏈入一個外部樣式表,其中定義了h3選擇符的color 、text-alig和font-size屬性:
h3
{
color: red;
text-align: left;
font-size: 8pt;
}
/*標題3的文字顏色為紅色;向左對齊;文字尺寸為8號字*/
然後在內部樣式表裡也定義了h3選擇符的text-align和font-size屬性:
h3
{
text-align: right;
font-size: 20pt;
}
/*標題3文字向右對齊;尺寸為20號字*/
那麼這個頁面疊加後的樣式就是:
color: red;
text-align: right;
font-size: 20pt;
/*文字顏色為紅色;向右對齊;尺寸為20號字*/
字體顏色從外部樣式表裡保留下來,而對齊方式和字體尺寸都有定義時,按照後定義的優先而依照內部樣式表。
注意:依照後定義的優先,所以優先級最高的是[s]內嵌樣式[/s],[s]內部樣式表[/s]高於[s]導入外部樣式表[/s],[s]鏈入的外部樣式表[/s]和[s]內部樣式表[/s]之間是最後定義的優先級高。
如何在xml中插入CSS
A brief CSS2 tutorial for XML——翻譯自Cascading Style Sheets, level 2
CSS可以被應用於任何形式的結構化文檔,比如可擴展性標記語言XML,因為制作者可以自定義沒有任何表現的標記,比起HTML,XML的表現依賴於更多的樣式。
下面是一個XML的片段。
<ARTICLE>
<HEADLINE>Fredrick the Great meets Bach</HEADLINE>
<AUTHOR>Johann Nikolaus Forkel</AUTHOR>
<PARA>
One evening, just as he was getting his
<INSTRUMENT>flute</INSTRUMENT> ready and his
musicians were assembled, an officer brought him a list of
the strangers who had arrived.
</PARA>
</ARTICLE>
為了讓XML文檔擁有普通的視覺效果,我們首先必須定義標簽元素的樣式是內嵌(inline-level)的還是塊級(block-level)的。
例子:
INSTRUMENT { display: inline }/*定義標簽樣式為內嵌元素*/
ARTICLE, HEADLINE, AUTHOR, PARA { display: block }/*定義標簽樣式為塊級元素*/
如何將定義好的CSS應用到XML文檔中呢?使用下面這段代碼。
<?XML-stylesheet type="text/css" href="style.css"?>
為了讓這個XML片段有更好的視覺表現,下面是一個完整的CSS文件。
INSTRUMENT { display: inline;}
ARTICLE, HEADLINE, AUTHOR, PARA { display: block ;}
HEADLINE { font-size: 1.3em; }
AUTHOR { font-style: italic; }
ARTICLE, HEADLINE, AUTHOR, PARA { margin: 0.5em; }
ARTICLE{background:#f5f5f5;border:1px #eee solid;}
INSTRUMENT{font-weight:bold;}