2013-04-05 49 views
1

我無法找到CSS3顏色的合法語法的精確定義,無論是作爲正則表達式,BNF還是可能存在的任何嚴格的形式化定義。一些信息可以從CSS3 Color Module中的口頭描述中得到(例如逗號分隔的列表可以包含空格),但是我看不到例如領先的東西零喜歡CSS3顏色的精確語法

rgb(010,005,255) 
rgba(050%,1%,01%,0) 

實際上是合法的,或省略小數的前導零,像

rgba(100,100,100,.5) 

我不是在談論的是什麼瀏覽器容忍,我問這是否是正式合法的CSS3語法,因爲我有興趣在非瀏覽器應用程序中使用這些顏色定義。

+2

是http://www.w3.org/TR/css3-color/你在找什麼? – Matijs 2013-04-05 22:06:25

+1

以及http://www.w3.org/TR/css3-values/#numbers – david 2013-04-05 22:11:53

+0

@Matijs:這個文檔或多或少地通過例子來定義語法,不是嗎?有幾個方面不會100%清楚。除了上面提到的例如無論百分比還是色調值可能都有小數部分,值是否可以前面加「+」。通過正則表達式進行嚴格和全面的定義,BNF或者不會留下這種不確定性。 – 2013-04-06 15:02:31

回答

0

如你發現已經時,CSS3 Color Module規範說

在功能表示法的RGB值的格式爲「RGB(」後面是逗號分隔的三個數值(無論是3的整數值或列表三個百分點值),其次是「)」

但隨後你需要看看在basic data types section of CSS 2.1找出一個整數或百分比值,它說...

有些值類型可能^ h ave整數值(表示爲)或實數值(表示爲)。實數和整數僅用十進制表示法指定。一個由一個或多個數字「0」到「9」組成。 A可以是一個,也可以是零個或多個數字,後跟一個點(。),後跟一個或多個數字。整數和實數都可以加上「 - 」或「+」來表示符號。 -0等於0,不是負數。

所以整數和數字可以有前導零。

然後稍後基本數據類型表示

百分比值(在本說明書中表示)的格式是一個緊跟着「%」。

所以百分比也可以有前導零。