原文轉貼自:奇摩知識+
CSS是英語Cascading Style Sheets(層疊樣式表)的縮寫,它是一種用來表現
HTML或XML等文件式樣的電腦語言。它的定義是由W3C來制定的。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
從1990年代初HTML被髮明開始樣式表就以各種形式出現了,不同的瀏覽器結合了它們各自的樣式語言,讀者可以使用這些樣式語言來調節網頁的顯示方式。一開始樣式表是給讀者用的,最初的HTML版本只含有很少的顯示屬性,讀者來決定網頁應該怎樣被顯示。
但隨著HTML的成長,為了滿足設計師的要求,HTML獲得了很多顯示功能。隨著這些功能的增加外來定義樣式的語言越來越沒有意義了。
1994年哈坤·利提出了CSS的最初建議。伯特·波斯(Bert Bos)當時正在設計一個叫做Argo的瀏覽器,他們決定一起合作設計CSS。
當時已經有過一些樣式表語言的建議了,但CSS是第一個含有「層疊」的主意的。在CSS中,一個文件的樣式可以從其它的樣式表中繼承下來。讀者在有些地方可以使用他自己更喜歡的樣式,在其他地方則繼承,或「層疊」作者的樣式。這種層疊的方式使作者和讀者都可以靈活地加入自己的設計,混合各人的愛好。
哈坤于1994年在芝加哥的一次會議上第一次展示了CSS的建議,1995年他與波斯一起再次展示這個建議。當時W3C剛剛建立,W3C對CSS的發展很感興趣,它為此組織了一次討論會。哈坤、波斯和其他一些人(比如微軟的托馬斯·雷爾登)是這個專案的主要技術負責人。1996年底,CSS已經完成。1996年12月CSS要求的第一版本被出版。
1997年初,W3C內組織了專門管CSS的工作組,其負責人是克裡斯·里雷。這個工作組開始討論第一版中沒有涉及到的問題,其結果是1998年5月出版的第二版要求。到2004年為止,第三版還未出版。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[編輯]
採納的困難
儘管CSS1規格1996年就完成了,但一直到三年後還沒有一個瀏覽器徹底實現了這些規格。2000年3月出版的微軟在麥金塔電腦上運行的Internet Explorer 5.0是第一個徹底貫徹CSS1的瀏覽器。此後許多其它瀏覽器也貫徹了CSS1和CSS2的一部分。但到2004年為止還沒有一個瀏覽器徹底貫徹了CSS2。尤其aural和paged等特性是被支持得最差的。
即使徹底貫徹了CSS1的瀏覽器也遇到了許多困難。許多CSS的貫徹互相矛盾、有錯或有其它稀奇古怪的地方。為了使他們的頁面在所有的瀏覽器中、在所有的系統上的顯示相同,作者往往要使用特別的技巧或結局特殊的困難。一個最著名的錯誤涉及到顯示方形的寬度,在許多瀏覽器中方形的寬度的顯示有錯誤,其結果是方形的寬度在許多瀏覽器中被正確地顯示,但在Internet Explorer上方形的寬度太窄。雖然這個錯誤有解決的辦法,但它限制了其它一些功能。
這隻不過是上百個有記載的Internet Explorer、網景導航者、Mozilla和Opera中的CSS錯誤中的一個。有些這些錯誤對文件的顯示有極重大的影響,CSS貫徹中的這眾多的錯誤給網頁設計者帶來了極大的困難,他們很難將他們的網頁設計到在所有的系統上都同樣的地步。
>>>>>>>>>>>>>>>>>>>>>>>>>>>
[編輯]
使用CSS
CSS最重要的目標是將文件的內容與它的顯示分隔開來。在CSS出現前,幾乎所有的HTML文件內都包含文件顯示的資訊,比如字體的顏色、背景應該是怎樣的、如何排列、邊緣、連線等等都必須一一在HTML文件內列出,有時重複列出。CSS使作者可以將這些資訊中的大部分隔離出來,簡化HTML文件,這些資訊被放在一個輔助的,用CSS語言寫的文件中。HTML文件中只包含結構和內容的資訊,CSS文件中只包含樣式的資訊。
比如HTML中h2標誌這一個二級標題,它在級別上比一級標題h1低,比三級標題h3高。這些資訊都是結構上的資訊。
一般來說級別越高的標題其字體也越大,h1的字體最大,因為一般來說字體越大它表示的內容就越重要,此外一般標題都使用粗體字,來突出它們的重要性。一般來說h2使用粗體字,其字體比h3大,比 h1小。這些資訊是顯示用的資訊。
在CSS出現前,假如作者要確定h2標題的顏色、字形、大小或其它顯示特征的話,他要使用HTML中的font或其它樣式指令,光h2不夠,因為h2只是一個結構指令。假如一個標題要用斜體字、紅色的字元、白色的底色的話,作者要這樣寫:
使用CSS
這些顯示用的指令使得一個HTML變得非常複雜,要保管也比較困難。假如所有的二級標題都要這樣來顯示的話,所有的二級標題的指令都要這麼複雜。此外讀者無法改變這些規定,假如一個讀者更喜歡藍色的標題的話,他無法改變標題的顏色,因為文件的作者特別規定了標題的顏色。
使用CSS的話h2指令只規定文章的結構,其顯示由樣式表來規定,上面的例子可以變成這樣:
使用CSS
服從的樣式表可以規定h2指令使用斜體字,紅色字和白色背景:
h2 { color: red; background: white; font-style: italic; }
這樣顯示與內容就分開了。(由於CSS的優點,W3C現在正在考慮將HTML中的許多顯示用的指令廢棄掉。)HTML只表達文章的結構,CSS表達所有的顯示。CSS可以指示顏色、字形、排列、大小以及其它許多非視覺的表達方式,比如將一篇文件的內容讀出來。
CSS樣式資訊可以包含在一個附件中或包含在HTML文件內。讀者可以使用多個樣式表,在重複的情況下他可以選擇其中之一。不同的媒體可以使用不同的樣式表。比如一個文件在熒光屏上的顯示可以與在印表機中列印出來的顯示不同。這樣作者可以為不同的媒體設計最佳的顯示方式。此外CSS的目標之一是讓讀者有更大的控制顯示的自由。假如一個讀者覺得斜體字的標題讀起來很困難,他可以使用自己的樣式表文件,這個樣式表可以「層疊」使用,他可以只改變紅色斜體字這個樣式而保留所有其它的樣式。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[編輯]
常見的陷阱
有時一個網頁的作者會亂用CSS。有些習慣於只使用HTML的作者可能會忽視CSS提供的可能性。比如有些習慣於使用HTML的顯示指令的作者可能會在所有的HTML文件內加入CSS樣式。這比將HTML顯示和結構指令混在一起是一個進步,但它還是有許多同樣的缺點,而且維護時的工作量與混合使用差不多。
CSS與其它電腦語言分享一些共同的陷阱。尤其在命名CSS的id和class時CSS作者往往會選擇一個比較有說明性的名稱而使用顯示特征作為它們的名稱。比如一個作者可能使用bigred來命名一個用大紅字體的突出顯示的位元組。在當時對作者來說這個名稱可能是很直覺的,但假如後來作者決定突出顯示的位元組應該使用綠色,而不是紅色的話,他的命名就有毛病了。在上面這個例子中,一個更合適的名稱應該是 emphasized,它描寫的是這個class的用意,而不是它是如何被顯示的。
另一個毛病是未記錄的、未定義的和往往被遺忘的名稱。一個網也作者可能會選擇上百個名稱。名稱如footer、footnote或者explanation、note、info、more可能是指同一回事。這樣許多重複的名稱就出現了。有時一個複雜的網站的設計者可能會依賴在HTML文件內與HTML指令結合的CSS指令來解決這個問題,但這樣一來他又把內容與顯示粘到一起去了,而且這樣一來這個文件就只適合於某一媒體了。(外部樣式表的一個大優點就是它是跨媒體的,因為不同的樣式可以特別適用於不同的輸出媒體。)
HTML本省的複雜性是另一個難點。雖然大部分使用CSS的文件比傳統的使用表格的文件要整潔,但過分使用class和過細膩的結構層次可以使HTML同樣繁庸。此外有的作者過分使用div指令。
另一個陷阱是為了剋服常見的瀏覽器的錯誤而引入的特別的CSS指令,這些指令當然是為了剋服已知的錯誤而引入的,但它們使一個CSS文件的維護性能降低,有時這樣的CSS文件的維護量甚至比過去的HTML文件的維護量還大。
有時一個作者可能會過渡地使用CSS來決定他的文件應該怎樣被顯示。經常一個作者會決定壓抑連接時底下的橫線,這很容易被做到,但對讀者來說這是一個不方便。
[編輯]
CSS的要求
1996年12月發表的CSS1的要求有:
支持字體的大小、字形、強調
支持字的顏色、背景的顏色和其它元素
支持文章特征如字母、詞和行之間的距離
支持文字的排列、圖像、表格和其它元素
支持邊緣、圍框和其它關於排版的元素
支持id和class
W3C管理CSS1要求 (http://www.w3.org/TR/REC-CSS1)
1998年5月W3C發表了CSS2,其中包括新的內容如絕對的、相對的和固定的定位元素、媒體型的概念、雙向文件和一個新的字型。W3C管理CSS2要求 (http://www.w3.org/TR/REC-CSS2/)
CSS2.1修改了CSS2中的一些錯誤,刪除了其中基本不被支持的內容和增加了一些已有的瀏覽器的擴展內容。它現在是一個要求候選者 (http://www.w3.org/TR/2004/CR-CSS21-20040225)。
CSS3正在發展中。W3C發表一個CSS3發展過程報告 (http://www.w3.org/TR/css3-roadmap/)。
維基百科所使用的新的一般皮膚('MonoBook')完全基於CSS,讀者可以簡單地更改他所喜歡的用戶樣式,他只要在他的用戶頁下加入一個副頁就可以了。用戶甚至可以使用一個完全沒有CSS的皮膚('MySkin')自己來製造一個自己的CSS皮膚
留言列表