2013-10-06 85 views
0

我可以在1條件加載中寫入所有用於IE錯誤的CSS嗎?如何正確使用條件註釋?

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

如果我讓1個條件註釋與LT IE 9,我可以寫IE7和IE8裏面的CSS或做我需要做2種不同的樣式?

回答

1

您放入該條件註釋內的所有內容都將由相應的瀏覽器解釋。這意味着您可以在單個條件註釋中放置多個鏈接標籤。但就你而言,它們全部將由IE 5,6,7和8解釋。如果每個版本都需要單獨的樣式表,則每個版本還需要單獨的條件註釋。

但是你一定要看看這篇博客文章:

http://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/

這種方法可以幫助你清理所有這些條件註釋。

編輯:

下面是一個例子:

HTML:

<!--[if IE]><html class="ie"><![endif]--> 
<!--[if !IE]><!--><html><!--<![endif]--> 
<head></head> 
<body> 
<h1>Foo!</h1> 
</body> 
</html> 

CSS:

h1{ 
    font-size:2em; 
} 

.ie h1{ 
    /* will only apply to IEs - but all of them */ 
    font-size:1.5em; 
} 
+0

感謝的人!我可以爲所有人使用一個班級嗎? 並將其放在我需要的東西 – user2852447

+0

我編輯了我的答案並添加了一個示例。 – jack

1

如果要使用不同的樣式表的每個版本IE,你還需要製作一個不同的條件 爲每一個;鏈接到一個獨特的樣式表。 lt代表'小於',或者lte,'小於或等於'。

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

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

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

另外,如果你想使用相同樣式表的大於或等於9的所有版本的IE少,用途:

<!--[if lte IE 9]> 
    <link href="ie.css" rel="stylesheet" type="text/css" /> 
<![endif]--> 
+0

謝謝你的快速回答。有條件評論的最佳做法是什麼?要使用1個條件註釋或其中的2個-3?或使用類? – user2852447

+0

@ user2852447如果它必須是瀏覽器特定的,那麼我將使用單個條件。否則,如果它適用於所有版本,請使用單個條件。 –

+0

鑑於[IE 10不支持條件註釋](http://www.sitepoint.com/microsoft-drop-ie10-conditional-comments/),所有小於9的IE版本都可以省略條件和只是目標'