首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制台中不兼容的IE文档模式错误?

控制台中不兼容的IE文档模式错误?
EN

Stack Overflow用户
提问于 2013-08-20 11:21:12
回答 1查看 679关注 0票数 1

我的jsp页面中有下面的代码行。

代码语言:javascript
复制
<!--[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]-->

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
<html>

  //some code

</html>

代码在IE7和所有浏览器中运行良好。但是当我使用IE9时,它会在IE控制台中给出错误,页面不会呈现。

日志:不兼容的IE文档模式

请帮帮我。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-20 11:35:44

doctype必须是HTML文件中的第一行。您还将打开HTML标记两次,每次在IE条件中打开一次,然后在下面再打开一次。

如果您计划支持IE以外的浏览器,那么用条件包HTML标记并不是一个好的解决方案,因为没有办法为其他浏览器定义HTML标记,因为它们会忽略条件注释。

一种解决方案是将所有类添加到HTML标记中,然后根据IE版本有条件地导入css文件。这些文件将基于浏览器定义所需的类;例如,ltIE7.css将定义..lt IE7类,ltIE8.css将定义..lt IE8类,等等。

代码语言:javascript
复制
<!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"%>

<html class="no-js lt-ie10 lt-ie9 lt-ie8 lt-ie7" lang="en" xml:lang="en" xmlns:fb="http://www.facebook.com/2008/fbml">
    <head>
        <!--[if lt IE 7]><link rel="stylesheet" type="text/css" href="ltIE7.css"/><![endif]-->
        <!--[if lt IE 8]><link rel="stylesheet" type="text/css" href="ltIE8.css"/><![endif]-->
        <!--[if lt IE 9]><link rel="stylesheet" type="text/css" href="ltIE9.css"/><![endif]-->
        <!--[if lt IE 10]><link rel="stylesheet" type="text/css" href="ltIE10.css"/><![endif]-->
    </head>
    <body>
        ...
    </body>
</html>

或者,如果不想使用外部CSS文件,可以在head中使用条件注释内联地定义类。

代码语言:javascript
复制
<style type="text/css">
    <!--[if lt IE 7]>
        .lt-ie7 {...}
    <![endif]-->
    <!--[if lt IE 8]>
        .lt-ie8 {...}
    <![endif]-->
    <!--[if lt IE 9]>
        .lt-ie9 {...}
    <![endif]-->
    <!--[if lt IE 10]>
        .lt-ie10 {...}
    <![endif]-->
</style>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18333716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档