IE兼容模式错误

Mos*_*ses 7 html html5 internet-explorer ie8-compatibility-mode

以下是我页面顶部的代码:

<!DOCTYPE html>

<!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]-->
<!--[if IE 7 ]>    <html lang="en" class="no-js ie7"> <![endif]-->
<!--[if IE 8 ]>    <html lang="en" class="no-js ie8"> <![endif]-->
<!--[if IE 9 ]>    <html lang="en" class="no-js ie9"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
    <meta charset="utf-8">
    <title></title>
    ...
Run Code Online (Sandbox Code Playgroud)

我正在使用Paul Irish的条件注释代码来更容易地检测和解决IE问题,但是这段代码似乎本身就是一个问题.问题是,使用条件注释代码强制我的页面进入IE8兼容模式,尽管事实上我ie=edge根据MSDN指南明确声明.

删除html标记周围的条件注释代码可修复毛刺并让IE8以标准模式呈现; 但我更愿意找到一个解决方案,让我保留条件代码并仍然强制IE在标准合规模式下呈现.请记住,我没有.htaccess文件可供使用,因为此站点使用的是windows/asp设置.

get*_*bro 7

开头的空注释修复了它.

<!--[if IE_NEEDS_THIS]><![endif]-->
<!DOCTYPE HTML>
<!--[if lt IE 9]><html class="lt-ie9"><![endif]-->
<!--[if gt IE 8]><!--><html class="gt-ie8"><!--<![endif]-->
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<title>--</title>
Run Code Online (Sandbox Code Playgroud)

但是不要在元标记周围添加条件注释.IE10将陷入怪癖.


alb*_*ert 0

可疑的肉汤 https://github.com/paulirish/html5-boilerplate/issues/125

  • 这可能是更新的链接:https://github.com/h5bp/html5-boilerplate/issues/1187,可能与以下内容相关:https://github.com/h5bp/html5-boilerplate/issues/378 (2认同)