作為一個主要使用英式英語的人,CSS不接受顏色作為有效屬性的事實相當令人惱火,尤其是當它接受灰色(及其偏差)作為有效值時。為什么CSS允許英式英語的值,而不是屬性?
根據W3 CSS顏色規范,CSS顏色值的官方拼寫是灰色:
然而,它也可以接受灰色(及其偏差):
.gray {
color: gray;
}
.grey {
color: grey;
}
<span class="gray">gray</span>
<span class="grey">grey</span>
有趣的是,這種選擇的歷史被很好地記錄了下來。
CSS規范的這一期談到了這一點。在那里,阿特金斯(Tab Atkins)鏈接到亞歷克斯·塞克斯頓(Alex Sexton)給出的JSConf視頻,講述了名為colors的CSS背后的歷史(相當有趣和有趣)。
根據Sexton的說法,灰度值最初被添加到MIT的rgb.txt文件中,該文件指定& quotX11顏色& quot,因為
惠普的一些程序員不記得哪個是對的。
幾年后,克里斯·利利(svgeesus)將這些值添加到SVG顏色中,最后CSS3(早在2001年)將如伊恩·希克森(Hixie)所說的那樣,
[...]僅僅是為了編纂目前的實踐。幾乎每個瀏覽器都支持它們,這不會改變(因為這會破壞很多網站[...]
這并沒有告訴我們為什么我們沒有顏色屬性。為此,讓我們回到CSS問題,其中tabatkins給出了一個提示,這是一個重復的租金請求。將命名顏色添加到SVG中的同一svgeesus也介入了這個線程并解釋了這一點
作為屬性值,國際英語灰色和美國英語灰色的別名問題最小(但如果今天提出這些關鍵字,可能仍不會被采用)。作為一種函數符號,它會有更多的問題;如果指定了優先級和重復數據刪除規則,則需要這兩種規則。對于將顏色屬性混疊到顏色更是如此(對于所有*-color*屬性也是如此。
抱歉,這只會增加更多問題,而不是解決更多問題。