CSS2.1

CSS2.1是CSS(層疊樣式表)的第二級第一次修訂版,其基於CSS2構建,後者基於CSS1構建。其支持指定媒體的樣式表,所以作者可以為他們的文檔定製在視覺瀏覽器、聽覺設備、印表機、盲文設備、手持設備,等上的表現。它也支持內容定位、表格布局、國際化和用戶界面相關的一些屬性。

CSS2.1糾正了CSS2中的一些錯誤(最重要的是重新定義了絕對定位元素的height/width,HTML的“style”屬性和重新計算的'clip'屬性,影像較大),並添加了一些已經被廣泛實現的特性。但是CSS2.1是進化中的CSS的一個“快照”:包含所有在發布推薦日期之前已經被實現的特性。

CSS2.1的意圖是取代CSS2。CSS2中的有些部分在CSS2.1中並未改變,有些做了修改,並且有些被刪除了,移除的部分在CSS3規範中重新出現。

基本介紹

  • 中文名:層疊樣式表2級修訂版1
  • 外文名:Cascading Style Sheets Level 2 Revision 1
  • 成為標準時間:2011年4月12日
發布背景,語法區別,

發布背景

CSS社區自1998年CSS2規範被推薦使用後獲得了重要的經驗。儘管CSS2規範的錯誤在後來通過其出版的各個勘誤表(errata)得到了修正,但還不到根據這些經驗改變規範的時機。而很多問題會在CSS3規範中得到處理,當時的事態阻礙了CSS2的實現和操作性。CSS2.1試圖通過以下幾點來處理這些問題:
  • 兼容CSS2中已經被廣泛接受和實現的部分。
  • 整理所有已經發布的CSS2勘誤表。
  • 在實現和CSS2規範完全不同的地方,將規範修改成普遍接受的慣例。
  • 刪除CSS2中已被CSS社區拒絕和沒有實現的特性。CSS2.1旨在反應在HTMLXML廣泛實現的特性(而不是只存在於XML語言或者HTML中特定的部分)。
  • 刪除將在CSS3中廢棄的CSS2特性,以鼓勵採用CSS3特性。
  • 加入(很)少數的一些在實現的經驗所表明的他們需要在CSS2中實現的新屬性值。
因此,雖然CSS2.1樣式表不是必須要向前兼容CSS2, 而樣式表將自己規範成CSS2.1的特性更像是一個兼容的瀏覽器(User Agent),然後一直維護它的向前兼容性。

語法區別

CSS2.1的語法與CSS1規範中指定的有一些區別。多半是因為CSS2中有CSS1中不存在的的新token。其它情況是因為為了更好的可讀性,語法已經被重寫了。然而,存在一些不兼容的改動,在CSS1語法中會被當作錯誤:
  • CSS1樣式表只能用每字元1位元組的編碼,例如,ASCII和ISO-8859-1。CSS2.1沒有這樣的限制。實際上,推斷CSS1符號化幾乎沒什麼困難,並且有些UA已經接受了2位元組編碼
  • CSS1隻允許斜線(\)後面有4個十六進制數字,來表示Unicode字元,CSS2允許6個。而且,CSS2允許用一個空白字元來分隔轉義序列。例如,按照CSS1,字元串"\abcdef"有三個字母(\abcd,e和f),按照CSS2的話,它只有一個字母(\abcdef)
  • 制表符(ASCII 9)不允許出現在字元串中。然而,因為CSS1中的字元串只用於字型名和URL,這會導致CSS1和CSS2不兼容的唯一方式就是如果一個樣式表中有名字中含有制表符的字型族
  • 同樣的,CSS1中,換行(用斜線轉義)也不允許出現在字元串中
  • CSS2會把後面緊跟著一個標識符的數字解析為一個DIMENSION token(即,一個未知單位),CSS1把它解析為一個數字和一個標識符。這意味著在CSS1中,聲明'font: 10pt/1.2serif'是正確的,和'font: 10pt/12pt serif'一樣,在CSS2中,"serif"前面需要一個空格(有些UA接受第一種示例,但不接受第二種)
  • 在CSS1中,一個類名可以以數字開頭(".55ft"),除非它是一個尺寸(".55in")。在CSS2中,這樣的類會被解析為未知尺寸(為了允許將來添加新單位)。要讓".55ft"變成一個合法的類,CSS2需要轉義第一個數字(".\35 5ft")

相關詞條

熱門詞條

聯絡我們