2015-11-14 189 views
1

請問能否告訴我錯誤在哪裏?我無法在任何瀏覽器中看到條件註釋中的任何文本。html中的條件註釋

web.html 
<!DOCTYPE html> 
<html lang="en-US> 
<head> 
    <meta charset="utf-8" /> 
    <link href="style.css" type="text/css" rel="stylesheet" /> 
<head/> 
<body> 
    <!--[if !IE]> 
     <p><span class="p-style">XXXXXXXXXXXX</span></p> 
    <![endif]--> 

    <!--[if IE]> 
     <p><span class="p-style-IE">YYYYYYYYYYYYY</span></p> 
    <![endif]--> 
</body> 
</html> 

style.css 
.p-style { 
    color:red; 
} 

.p-style-IE { 
    color:green; 
} 

謝謝。

回答

4

除IE以外的瀏覽器將條件語句視爲註釋,因爲它們被包含在註釋標記中。

<!--[if IE]> 
Non-IE browsers ignore this 
<![endif]--> 

但是,當你的目標瀏覽器是不是IE,你必須使用2個評論,一前一後的代碼。 IE會忽略它們之間的代碼,而其他瀏覽器會將其視爲正常代碼。針對非IE瀏覽器的語法是:

<!--[if !IE]--> 
IE ignores this 
<!--[endif]--> 

您的代碼有一些問題,我糾正了它們。檢查IE9和其他瀏覽器。現在,它的做工精細,除了在IE10及更高版本(的Cuz IE10及以上不再支持有條件的標籤)

<!DOCTYPE html> 
 
<html lang="en-US"> 
 
<head> 
 
    <meta charset="utf-8" /> 
 
    <link href="style.css" type="text/css" rel="stylesheet" /> 
 
<head/> 
 
<body> 
 
\t <p><span class="p-style">XXXXXXXXXXXX</span></p> 
 
\t <p><span class="p-style-IE">YYYYYYYYYYYYY</span></p> 
 
\t  <!--[if IE]> 
 
\t \t \t <style> 
 
\t \t \t \t .p-style {color:red;} 
 
\t \t \t \t .p-style-IE {display: none;} 
 
\t \t \t </style> 
 
\t \t <![endif]--> 
 
\t \t <!--[if !IE]><!--> 
 
\t \t \t <style> 
 
\t \t \t \t .p-style {display: none;} 
 
\t \t \t \t .p-style-IE{color:green;} 
 
\t \t \t </style> 
 
\t \t <!--<![endif]--> 
 
</body> 
 
</html>

更新:對於IE10和IE11,

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) { 
    /* IE10+ specific styles go here */ 
} 

我們使用-ms-high-contrast創建媒體查詢,在其中放置IE10 +特定的CSS樣式。由於-ms-高對比度是特定於Microsoft的(僅在IE10 +中可用),因此它只能在Internet Explorer 10和更高版本中解析。

+0

謝謝你的回答。有沒有特別針對IE10或Microsoft Edge編寫代碼的方法?我的代碼適用於Mozilla,Chrome和Opera,但某些元素在Explorer和Edge中稍有偏移。我不知道如何解決它。 –

+1

謝謝,如果有人尋找微軟邊緣黑客,這個工程_: - ms-lang(x),_: - webkit-full-screen,.selector {property:value;} –