瀏覽器支持的不一致性 瀏覽器的漏洞或缺乏支持的CSS功能,導(dǎo)致不同的瀏覽器顯示出不同的CSS版面編排。例如在微軟Internet Explorer6.0的舊版本 ,執(zhí)行了許多自己的CSS2.0屬性,曲解了很多重要的屬性,例如:width,height,和float。許多所謂的CSS人員,必須在最熱門的或常用的瀏覽器中達(dá)到一致的版面編排。在不同的瀏覽器中,要達(dá)到像素精準(zhǔn)的版面編排,有時(shí)候是不可能的。
CSS沒有父層選擇器 CSS選擇器無法提供元素的父層或繼承性,以符合某種程度上的標(biāo)準(zhǔn)。先進(jìn)的選擇器(例如 XPath)有助于復(fù)雜的樣式設(shè)計(jì)。然而,瀏覽器的性能和增加彩現(xiàn)的問題關(guān)系著父層選擇器,卻是CSS的工作群組拒絕建議的主要原因。
不能明確地指定繼承性 樣式的繼承性,建立在瀏覽器中DOM元素的層級(jí)和具體的規(guī)則上。
垂直控制的局限元素的水平放置普遍地易于控制,垂直控制則非憑直覺性的、較迂回的甚至是不可能的。簡(jiǎn)單來說,例如:垂直地圍繞一個(gè)元素、頁尾的放置不能高于可見視窗(viewport,視窗或屏幕的可見范圍)的底部范圍、需要復(fù)雜而非憑直覺性的樣式規(guī)則,或是簡(jiǎn)單但不被廣泛支持的規(guī)則。
顯示的缺乏目前的CSS沒有辦法明確又簡(jiǎn)單的顯示屬性值(例如:margin-left: 10% - 3em +4px;)。這在很多情況下都是非常有用的,例如:總字段中計(jì)算字段的尺寸限制。無論如何,CSS WG發(fā)表了CSS局限性的草案,而InternetExplorer 5 以后的版本支持相似功能的語法顯示。
缺乏正交性同樣的效果可以用不同的屬性來完成,這經(jīng)常會(huì)造成困擾。例如position、display與float定義了不同的配置方式,而且不能有效的交替使用。 一個(gè)display: table-cell元素不能指定 float或是position: relative,因?yàn)橹付╢loat:left的元素不應(yīng)該受到display效果的影響。再者,沒有考慮到新建立屬性所造成的影響,例如在表格中你應(yīng)該使用border-spacing而不是margin-*來指定表格元素。這是因?yàn)橐勒誄SS準(zhǔn)則,表格內(nèi)部元素是沒有邊界(margin)的。