IE和HTML5 doctype问题

Jua*_*cio 13 html5 internet-explorer html5boilerplate

我正在使用伟大的HTML5样板.这是一个很棒的项目,但我在IE 8和7中有一些大问题(可能是8但尚未尝试)

这些文件具有HTML5文档类型:

<!doctype html>
<head>
Run Code Online (Sandbox Code Playgroud)

但问题是没有完整和丑陋的doctype如...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
Run Code Online (Sandbox Code Playgroud)

我得到了所有类型的渲染问题:以边距为中心:自动无法工作,高度,宽度,集合和填充都表现得像疯了一样,我的所有布局都被打破了,<!doctype>但如果我切换到旧的,一切都很好(好吧,不是很好,它仍然是IE,但正如预期的那样)

HTML5 Boilerplate附带了Modernizer,我认为应该解决这个问题,但它不起作用.从我的"研究"(谷歌)我发现IE进入怪癖模式宽度<!doctype>,所以问题是......

有没有办法防止IE进入怪癖模式<!doctype>

或者至少不要破坏边距,宽度,填充等?

编辑:这是完整的头:

<!doctype html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
  <meta charset="utf-8">
Run Code Online (Sandbox Code Playgroud)

Rob*_*Rob 16

IE不会与该doctype进入怪癖模式.样板应该修复IE问题,而不是引起它们.您缺少<html>doctype之后的元素.添加它以查看是否有变化.HTML5不需要它,但如果缺少,IE或样板可能会根据文档发疯.

此外,只需删除doctype之后的注释,这样就可以解决问题.

  • 这个答案的实际解决方案是什么? (7认同)
  • 删除html的注释版本并保留简单<!DOCTYPE html> <html lang ="es"> <head> (5认同)

Dow*_*046 10

试着把它放在<head></head>标签中:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
Run Code Online (Sandbox Code Playgroud)

如果它已经存在,则将其删除,您可能会收到所需的结果.


Ric*_*haw 7

IE不会与HTML doctype陷入困境 - 这就是重点!

这个新的DOCTYPE有什么好处,特别是所有当前的浏览器(IE,FF,Opera,Safari)都会查看它并将内容切换到标准模式 - 即使它们没有实现HTML5.这意味着您今天可以开始使用HTML5编写您的网页,并让它们持续非常非常长的时间.

(http://ejohn.org/blog/html5-doctype/)

但是,在doctype(换行符,注释等)之前有任何内容.

我会检查你在做什么 - HTML5 doctype不会让你的浏览器陷入困境.