2012-08-16 58 views
2

我想知道,使用條件註釋的時候,什麼是正確的方法(注意結束的div標籤)使用條件註釋以正確的方式

這樣,與一個閉合DIV兩個條件的div

<!--[if IE]> 
<div id="IEdiv"> 
<![endif]--> 

<!--[if !IE]><!--> 
<div id="AllOtherDiv"> 
<!--<![endif]--> 

    <div>The Content</div> 
</div> 

OR

這種方式,有閉合DIV爲每個條件的div,並重復相同的HTML

<!--[if IE]> 
<div id="IEdiv"> 
<div>The Content</div> 
</div> 
<![endif]--> 

<!--[if !IE]><!--> 
<div id="AllOtherDiv"> 
<!--<![endif]--> 
<div>The Content</div>   
</div> 

注意:您可能想知道爲什麼我不只是使用條件樣式表,如果內部HTML是相同的,但我在條件div(我必須)上使用內聯樣式,而IE的內聯樣式是不同的(因爲IE吸如此糟糕與它的CSS支持... )

謝謝

+0

這裏更傳統的途徑是使用一類,無論的瀏覽器,並有一個IE條件註釋,加載了IE特定的樣式表,它覆蓋了標準樣式規則。這樣,如果你在頁面上有javascript,它可以通過類名找到這個'div',不管你是IE還是Firefox還是Chrome – jackwanders 2012-08-16 19:31:58

回答

2

無論在技術上是對還是錯,但重複的內容似乎很浪費,如果它的將是同一個跨瀏覽器。只需像第一個例子那樣調整開始標記。 HTML註釋旨在允許這樣的技術。

HTML5 Boilerplate發生與<html>開始標籤要做到這一點,順便說一下,除了與類和略有不同的條件註釋,但你可以使用任何屬性,你想,只要你正確地針對瀏覽器:

<!--[if lt IE 7]> <html lang="en-us" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> 
<!--[if IE 7]> <html lang="en-us" class="no-js lt-ie9 lt-ie8"> <![endif]--> 
<!--[if IE 8]> <html lang="en-us" class="no-js lt-ie9"> <![endif]--> 
<!--[if gt IE 8]><!--> <html lang="en-us" class="no-js"> <!--<![endif]--> 
+0

謝謝,只是我的文本編輯器讓我懷疑... – 2012-08-16 20:14:30

1
<!--[if IE]> 
<div id="IEdiv"> 
<![endif]--> 

<!--[if !IE]><!--> 
<div id="AllOtherDiv"> 
<!--<![endif]--> 

    <div>The Content</div> 
</div> 

是這樣做,因爲你看到這個在很多網站的正確方法:

<!--[if IE9]> 
<html class="ie9"> 
<![endif]--> 

<!--[if IE8]> 
<html class="ie8"> 
<![endif]--> 

<!--[if lte IE7]> 
<html class="ie7"> 
<![endif]--> 

<!--[if !IE]><!--> 
<html> 
<!--<![endif]--> 

content.... 

</html> 
+0

謝謝你,只是我的文本編輯器讓我懷疑...... – 2012-08-16 20:13:21