這裏我有一個奇怪模式的網站。 :(我正在修補一些頁面到CSS1兼容模式下適用於Chrome和Firefox的Quirks/BackCompat模式的純CSS選擇器
我想重用現有的CSS並只保留一個版本,但是有些值在quirks和CSS模式下必須不同,因爲它們有不同的盒子模型。
是否有一個選擇,它可以告訴該HTML是否怪癖或標準模式? 我知道有針對IE一些CSS黑客,但我需要支持Chrome和Firefox。
這裏我有一個奇怪模式的網站。 :(我正在修補一些頁面到CSS1兼容模式下適用於Chrome和Firefox的Quirks/BackCompat模式的純CSS選擇器
我想重用現有的CSS並只保留一個版本,但是有些值在quirks和CSS模式下必須不同,因爲它們有不同的盒子模型。
是否有一個選擇,它可以告訴該HTML是否怪癖或標準模式? 我知道有針對IE一些CSS黑客,但我需要支持Chrome和Firefox。
事實並非如此很多CSS選擇器怪癖,因爲它是一個HTML怪癖,但id
和class
屬性在怪癖模式下不區分大小寫,這意味着選擇器在大小寫方面有所不同將永遠匹配。細節見this answer及其第一個腳註。
如果你可以修改你的HTML您所有的網頁,添加一個類或者您的html
或body
元素(類名稱並不重要),並在不同的情況下,與相同的類名前綴的怪癖選擇,。下面是一個代碼示例:
<html class="quirks">
<!-- Or: <body class="quirks"> -->
#foo {
width: 480px;
padding: 10px;
}
/* Capital Q instead of small q, won't match in standards mode with a doctype */
.Quirks #foo {
width: 500px;
}
這適用於所有瀏覽器。
如果你不能修改你的HTML,那麼我不相信有一個適用於所有瀏覽器的純CSS解決方案。在以前的IE版本中,您可以故意使用CSS2.1選擇器來隱藏IE5怪癖和舊版本的樣式(如良好的ol'html > body
黑客),但您無法使用Chrome和Firefox或者新的interoperable quirks mode在IE10中,因爲它們在怪癖和標準模式下支持相同的高級選擇器。