樣式表

樣式表

樣式表(style sheet)是關於文件對標題和正文的默認字體、大小、顏色、前頁外觀、單個部分的排列間隔、行間距、四周頁邊距、標題間距離等元素的定義。樣式表在電子文檔開始時通過插入或者鏈接進行定義。

定義


樣式表(style sheet)是關於文件如下元素的定義:
• 標題和正文的默認字體、大小和顏色;
• 前頁外觀;
• 單個部分的排列間隔;
• 行間距、四周頁邊距、標題間距離等;
• 任何自動生成的內容表該包含多少級標題;
• 相應頁中包含的任何樣板文件內容。

功能


通常,樣式表在電子文檔開始時通過插入或者鏈接進行定義。這個樣式表應用於整個文檔。如果需要,整個樣式表的特定元素可被應用於文檔特定部分的特殊代碼而取代。
對於網頁,樣式表執行相似的功能,允許設計人員跨越網頁而保證基本的一致性。通過在文檔標題中插入樣式規則或者參照單獨的樣式表可以為整個文檔定義樣式元素。瀏覽器可允許用戶更改一些或所有樣式表屬性。
層疊樣式表是為填入或取代整個樣式表的其它樣式表做準備的樣式表。它方便了設計人員在需要時更改樣式表。

優點


形式和內容分離有一些優點,但只有在主流web瀏覽器支持CSS的時候才行。

速度快

總的來說,利用樣式表的網站的用戶體驗通常會更快,相比不使用該技術的網站。“整體”來講第一頁可能載入更慢—因為需要傳輸樣式表和內容。後續頁面載入速度會變快,因為沒有樣式信息需要下載——因為CSS文件已經在瀏覽器的緩存中了。

可維護性

將所有樣式保存在一個文件中可以減少維護的時間,減少錯誤的機會,從而提高表達的一致性。例如,網頁上某個級別的標題可能用一種特定的顏色表示,當要修改這些標題的顏色的時候,只需要改變CSS文件中的一個短短的字元串即可。而如果使用以前的方法將樣式嵌入在每個頁面,需要編輯每個文件,從而繁瑣,費時費力,而且容易出錯。

可訪問性

使用CSS的HTML或XHTML網站更容易調整,以適應不同的瀏覽器。在瀏覽器中使用“完全降低”(“degrade gracefully”)CSS的網站不能顯示圖形內容,如Lynx或那些很老的不支持CSS的瀏覽器。瀏覽器忽略它們不能解釋的CSS,比如CSS3語句。這使得各種各樣的用戶代理都能夠訪問網站的內容,即使他們不能呈現樣式表或帶有圖形能力的設計。例如,一個使用可刷新點字顯示輸出的瀏覽器可以完全無視布局信息,並且用戶仍然可以訪問所有頁面內容。

可定製

如果一個頁面的布局信息存儲在外部,用戶可以決定是否完全禁止布局信息,使網站的內容仍然保持一種可讀的形式。網站的作者也可以提供多個樣式表,可以在沒有改變它的任何內容的情況下,徹底改變網站的外觀。
大多數現代瀏覽器還允許用戶定義自己的樣式表,覆蓋原有的布局。例如,允許用戶加粗用戶訪問的每個頁面上的每個超鏈接。

一致性

因為語義文件只包含作者想要傳達的含義,文檔內容中各種元素的樣式是非常一致的。例如,標題、強調文本、列表和數學表達式都使用樣式表中定義的樣式屬性。在創建頁面的時候不需要關心樣式屬性的組合。這些表象細節可以推遲到呈現的時刻。

可移植性

表現的細節可以延遲到展示的時候才考慮,這意味著文檔可以很容易被重新編排,在一個完全不同的媒介上展示,只需要為新的表達媒介準備一個新的樣式表,同時符合語義文檔中元素或結構的辭彙。只要通過應用一個新的樣式表,精心撰寫的web頁面文檔便可以很容易地被印刷成裝訂卷,並含有完整的頁眉和頁腳,頁碼和生成的目錄。

缺點


目前規範(例如:XHTML、XSL、CSS)和實現這些規範的軟體工具只是達到早期成熟階段。所以試圖接受這種內容和形式分離的方法還面臨一些世紀性的問題。
沒有解析和生成工具導致應用範圍小
風格規範仍然相當成熟,軟體工具也已經逐漸適應。最主要的web開發工具大多數還是使用內容形式混合的網頁編寫方式。所以作者和設計者嘗試開發基於圖形界面的網頁編輯工具,但發現很難按照語義web方法開發基於GUI的工具。除了GUI工具,廣義樣式表共享庫可能會有助於這些方法的落地。