有沒有辦法添加一個只能在兼容模式下工作的IE8的css,但是如果IE7或者IE8或者(顯然是任何其他瀏覽器)都不會這樣?CSS僅適用於兼容模式下的IE8(不支持IE8否IE7)?
我的CSS是微不足道
h1 {
font-size:14px;
}
但必須FONT-SIZE只能在IE8(兼容模式)
注意工作: 我知道如何編寫條件語句來發現IE8 ..但我不知道如何爲IE8兼容模式做到這一點。
有沒有辦法添加一個只能在兼容模式下工作的IE8的css,但是如果IE7或者IE8或者(顯然是任何其他瀏覽器)都不會這樣?CSS僅適用於兼容模式下的IE8(不支持IE8否IE7)?
我的CSS是微不足道
h1 {
font-size:14px;
}
但必須FONT-SIZE只能在IE8(兼容模式)
注意工作: 我知道如何編寫條件語句來發現IE8 ..但我不知道如何爲IE8兼容模式做到這一點。
不幸的是沒有辦法適用於只是IE8兼容模式。但是,IE8CM將顯示完全相同的IE7,因爲它是一個IE7模擬器。你可以使用類似下面的代碼,但它也適用於IE7:
<!--IE9 compatibility mode & IE8:-->
<!--[if IE 8]>
<p>Welcome to Internet Explorer 8.</p>
<![endif]-->
<!--IE8 compatibility mode & IE7:-->
<!--[if IE 7]>
<p>Welcome to Internet Explorer 7.</p>
<![endif]-->
有什麼原因,它也無法適用於IE7?任何黑客,你這樣做將解決在IE8中的問題兼容模式,也應該在IE7中需要。
你應該低於HTML標記之前在代碼中添加代碼:
<!--if IE 8>
<html class="IE8">
<[endif]-->
<html>
...
</html>
和CSS文件,這樣做:
.IE8 h1{
font-size:14px;
}
這將只工作了IE8。
使用CSS破解:
body{
color:red; /*every browser*/
color:blue\9; /*IE8 or below*/
}
兼容模式,除非有一個改性的DocType呈現爲IE 7或更小,所以如果是在兼容模式,將經常也呈現IE 7
但是,您仍然可以這樣做:如果您檢查用戶代理字符串,則可以通過這種方式進行區分。 IE 8和更新版本在用戶代理字符串中包含「Trident」這個詞,所以如果它呈現爲IE 7或更低版本,但Trident一詞在uagent中顯示,則它必須處於兼容模式。
雖然大多數人不會覺得這是必要的,但我確實有理由這樣做。在我之前的一個項目中,需要告訴人們使用兼容模式選項,直到我們能夠修改我們的應用程序以處理較新的瀏覽器。不是每個人都閱讀說明,所以彈出消息往往是告訴人們該做什麼的最佳方式。
劇本我寫的這個修改後的版本,並放置在文件頭的伎倆:
<script language="javascript" type="text/javascript">
if (!!navigator.userAgent.match(/MSIE/i)) {
ie__mode=' not_ie_compatibility_mode';
(!!navigator.userAgent.match(/Trident/i)&&document.documentMode<8)?ie__mode=' ie_compatibility_mode':''; }
</script>
那麼接下來的JavaScript變量ie_mode將被設置爲:「ie_compatibility_mode」或「not_ie_compatibility_mode」
如果您要添加document.documentElement。的className + = ie__mode;該腳本以便在CSS類添加到文檔本身,像這樣:
<script language="javascript" type="text/javascript">
if (!!navigator.userAgent.match(/MSIE/i)) {
ie__mode=' not_ie_compatibility_mode';
(!!navigator.userAgent.match(/Trident/i)&&document.documentMode<8)?ie__mode=' ie_compatibility_mode':'';
document.documentElement.className+=ie__mode; }
</script>
那麼你就可以使用CSS文件中的任一模式。例如風格:
<style type="text/css">
html { color:#000000; }
/* default settings: start with all items 'off' */
.hide_element { display:none; visibility:hidden; }
.ie_compatibility_mode .display_compatibility_mode { visibility:visible; display:block; color:#FF9900; }
.not_ie_compatibility_mode .display_not_compatibility_mode { visibility:visible; display:block; color:#666666; }
</style>
,並在身體然後你可以這樣做:
<body>
If you are using internet explorer there will be more here:
<br><br>
<script language="javascript" type="text/javascript">
if (document.documentMode) document.write("which ie mode: "+document.documentElement.className);
</script>
<br><br>
<div class="hide_element display_compatibility_mode">
This is in compatibility mode. [this should show up in orange]
</div>
<div class="hide_element display_not_compatibility_mode">
This is not in compatibility mode. [this should be show up in blue]
</div>
</body>
這裏是所有部件的完整的工作頁面放在一起:
<!DOCTYPE html>
<html>
<head>
<title>HTML Class Setting/Detect Compatibility Mode Example - Jeff Clayton</title>
<script language="javascript" type="text/javascript">
if (!!navigator.userAgent.match(/MSIE/i)) {
ie__mode=' not_ie_compatibility_mode';
(!!navigator.userAgent.match(/Trident/i)&&document.documentMode<8)?ie__mode=' ie_compatibility_mode':'';
document.documentElement.className+=ie__mode; }
</script>
<style type="text/css">
/* default settings: start with all items 'off' */
.hide_element { display:none; visibility:hidden; }
.ie_compatibility_mode .display_compatibility_mode { visibility:visible; display:block; color:#FF9900; }
.not_ie_compatibility_mode .display_not_compatibility_mode { visibility:visible; display:block; color:#0000FF; }
</style>
</head>
<body>
If you are using internet explorer there will be more here:
<br><br>
<script language="javascript" type="text/javascript">
if (document.documentMode) document.write("which ie mode: "+document.documentElement.className);
</script>
<br><br>
<div class="hide_element display_compatibility_mode">
This is in compatibility mode. [this should show up in orange]
</div>
<div class="hide_element display_not_compatibility_mode">
This is not in compatibility mode. [this should show up in blue]
</div>
</body>
</html>
的問題是關於IE 8 *兼容模式*(又名Quirks模式)。 –
@ mr.soroush我只關心IE8兼容模式!!! – Zo72