2009-12-30 26 views
1

應該這樣工作嗎?IE條件註釋在內嵌工作嗎?

<!--[if IE]> 
<link rel="stylesheet" type="text/css" href="/minify/css?f=ie8.css<!--[if lte IE 7]>,ie7.css<![endif]--><!--[if lte IE 6]>,ie6.css<![endif]-->" /> 
<![endif]--> 

顯然嵌套註釋不起作用,那麼這是什麼?

<link rel="stylesheet" type="text/css" href="/minify/css?f=someotherfile.css<!--[if IE]>,ie8.css<![endif]--><!--[if lte IE 7]>,ie7.css<![endif]--><!--[if lte IE 6]>,ie6.css<![endif]-->" /> 
+1

它不起作用的原因是'/ * begin-comment/*破壞! */end-comment * /'不起作用。嵌套不嵌套的東西會打破他們的想法。 – 2009-12-30 00:23:17

回答

3

否,條件註釋不是宏風格處理上述HTML;他們只能去正常的HTML評論可以。評論不能進入標籤。

因此:

<!--[if lt IE 7]><link rel="stylesheet" type="text/css" href="/minify/css?f=ie8.css,ie7.css,ie6.css"><![endif]--> 
<!--[if (gte IE 7)&(lt IE 8)]><link rel="stylesheet" type="text/css" href="/minify/css?f=ie8.css,ie7.css"><![endif]--> 
<!--[if (gte IE 8)&(lt IE 9)]><link rel="stylesheet" type="text/css" href="/minify/css?f=ie8.css"><![endif]--> 

(你有一個單獨的樣式表是必要的足夠的IE瀏覽器黑客規則,甚至IE8這個瀏覽器通常是相當不錯的表現,只要它不是在兼容模式如果你只有一些規則,this tip可能會有用。)

+0

不幸的是,這不取決於需要多少樣式表 - 我們試圖允許用戶在社區網站上提交樣式表,並且有很多關於IE問題的抱怨,所以我們需要一個像這樣的全面解決方案。如果這取決於我,我們根本不會使用這些。 ;) – 2009-12-30 17:26:53

0

它不起作用,因爲你嵌套條件註釋。

非IE瀏覽器會以這種網站語法突出顯示的方式讀取它。

要解決該問題,請從嵌套註釋中刪除關閉--以將其從正常瀏覽器中隱藏。
它應該工作得很好。

例如:

<!--[if IE]> 
<link rel="stylesheet" type="text/css" href="/minify/css?f=ie8.css<![if lte IE 7]>,ie7.css<![endif]><![if lte IE 6]>,ie6.css<![endif]>" /> 
<![endif]--> 
+0