2010-06-16 79 views

回答

2

你可以使用:

<body class="all"> 
    <!--[if ie]> 
    <div class="ieOnly"> 
    <![endif]--> 

<div id="content"> 

<p>...</p> 

</div> 

    <!--[if ie]> 
    </div> 
    <![endif]--> 
</body> 

這樣的CSS選擇器來解決IE的缺陷/差異比正常

#content {/* for non-IE browsers */} 

body.all .ieOnly #content {/* for IE */} 

更具體...並應覆蓋 '正常' #content規則,永遠不會被非IE瀏覽器應用,因爲在選擇器中有一個元素.ieOnly,否則它們對他們來說是「不可見的」。

嚴格來說,還是沒有;你不能做你在你的問題中提出的建議,儘管有其他方法。

+0

聰明的想法在身體中使用IE標籤,而不僅僅是樣式聲明。 – 2010-06-16 07:49:53

+0

使用use 2'body'它在語義上是正確的 – 2010-06-16 10:36:03

+0

它允許完全有效的CSS,在單個樣式表中,html也是有效的,這取決於您對IE條件註釋的看法。但是,它應該驗證罰款。 – 2010-06-16 11:04:43

1

不,你不能專門評論一個屬性,即使IE的條件註釋。但是可以有其他表達方式。

+0

而不是使用條件通信和不同的CSS和CSS黑客我想添加一個類到身體,然後我可以使用該類的所有IE特定CSS需求。 – 2010-06-16 01:56:58

2

簡答:(至少不是內聯),但爲什麼你需要? :)

只需在IE條件樣式表中定義一個body { }風格,就像這樣:

<!--[if IE 7]> 
    <link rel="stylesheet" type="text/css" href="ie7.css"> 
<![endif]--> 

裏邊有:

body { /* or body.all { */ 
    background: pink; /* Pink is pretty!, or green, whatever */ 
} 
+0

你的意思是2個不同的'身體' – 2010-06-16 01:57:58

+0

我想保留所有樣式在一個CSS。 – 2010-06-16 01:59:07

+1

@ metal-gear-solid - 你把它放在你的主CSS後面,無論什麼樣式的'body'聲明都會覆蓋以前定義的屬性(禁止'!important'),就像任何其他的CSS一樣。對於這部分「我想保留所有樣式在一個CSS」......好吧,你不能有*有效的* CSS和IE特定的樣式然後,你將不得不使用hacky CSS,我建議。 – 2010-06-16 01:59:16

1

如果你想基於A類添加到身體瀏覽器沒有黑客,你將需要使用服務器端代碼和UA嗅探。

相關問題