2013-08-22 106 views
1

我在IE8 +瀏覽器中渲染頁面時遇到問題,並且它在FireFox中正常工作。如果我保留下面的代碼,那麼它不會呈現IE8 +中的頁面。它僅在兼容性視圖模式下呈現,但不在正常模式下呈現。頁面未在ie8中呈現。僅在兼容性視圖模式下渲染

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd"> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 

<!--[if lt IE 7]><html lang="en" class="no-js lt-ie10 lt-ie9 lt-ie8 lt-ie7" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <![endif]--> 
<!--[if IE 7]><html lang="en" class="no-js lt-ie10 lt-ie9 lt-ie8" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <![endif]--> 
<!--[if IE 8]><html lang="en" class="no-js lt-ie10 lt-ie9" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <![endif]--> 
<!--[if IE 9]><html lang="en" class="no-js lt-ie10" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <![endif]--> 
<!--[if gt IE 9]><!--><html lang="en" class="no-js" xmlns="http://www.w3.org/1999/html" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <!--<![endif]--> 

    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <link type="text/css" rel="stylesheet" href="./public/css/styles.css"> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
    <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.0/jquery.validate.js"></script> 
    <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js"></script> 
    <script type="text/javascript" src="./public/js/myjs.js"></script> 
    </head> 
    <body> 

    </body> 

    </html> 

但是,如果我改變代碼如下。然後在IE8 +中無需切換到兼容性視圖模式就可以正確渲染。

<!--[if lt IE 7]><html lang="en" class="no-js lt-ie10 lt-ie9 lt-ie8 lt-ie7" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <![endif]--> 
<!--[if IE 7]><html lang="en" class="no-js lt-ie10 lt-ie9 lt-ie8" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <![endif]--> 
<!--[if IE 8]><html lang="en" class="no-js lt-ie10 lt-ie9" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <![endif]--> 
<!--[if IE 9]><html lang="en" class="no-js lt-ie10" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <![endif]--> 
<!--[if gt IE 9]><!--><html lang="en" class="no-js" xmlns="http://www.w3.org/1999/html" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> <!--<![endif]--> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd"> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 

    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <link type="text/css" rel="stylesheet" href="./public/css/styles.css"> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
    <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.0/jquery.validate.js"></script> 
    <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js"></script> 
    <script type="text/javascript" src="./public/js/myjs.js"></script> 
    </head> 
    <body> 

    </body> 

    </html> 

這兩個代碼有什麼區別?

謝謝!

+1

您的DOCTYPE應該是您文檔中的第一件事。你可以改變它只是:<!DOCTYPE html> –

+0

是的..我試過..如果我把它移動到第一行然後頁面不呈現。它僅在兼容性視圖模式下呈現... – user755806

回答

6

<!DOCTYPE HTML應該在文檔的第一行,以便切換到標準(即非兼容)模式。

如果您確實需要兼容模式,您可以在文件的開頭添加空白行或者使用<!-- Yes, I like quirksmode -->等一些註釋使您的操作更加明確。

+0

感謝您的回覆。問題是隻有當我切換到兼容性視圖模式時纔會呈現頁面。但是如果不切換到它,它必須渲染。我該怎麼辦?如果我在第一行保持文檔類型,那麼頁面不會呈現。它僅在兼容性視圖模式下呈現。 – user755806