【问题标题】:HTML5 block level elements failing in IE with HTML5Shiv or ModernizrHTML5 块级元素在带有 HTML5Shiv 或 Modernizr 的 IE 中失败
【发布时间】:2012-09-27 11:02:38
【问题描述】:

我有 HTML5Shiv/Modernizr(我都尝试过),以及将 display: block 分配给 HTML5 元素(如 sectionarticle)的 normalize。

在 IE8 中,display: block 似乎没有正确分配给 HTML5 元素。

我在 JavaScript 上做了一个测试控制台日志以确保它被调用,并且还尝试在达到选择器限制的情况下删除一些 CSS,并移动/重新排序 CSS 和 JS。

还有其他问题吗?

【问题讨论】:

  • 我不喜欢 IE8 支持 html 5...
  • @Pilatus 这就是你使用 html5shiv/modernizr 的原因
  • 无论如何,您可能应该在重置样式表中设置块的显示。随机站点示例:vikaskhera.wordpress.com/2012/06/17/html5-reset-stylesheet
  • 你能发布 HTML 和 CSS 片段吗?你用开发者工具 (F12) 看了吗?
  • 请注意,IE 的 shim 应该加载到文档的头部(在 css 之前),否则可能无法按预期工作

标签: javascript html internet-explorer-8 html5shiv


【解决方案1】:

问题已解决。

原来其中一个导航元素有一个奇怪的属性 xmlns="http://www.w3.org/1999/html" 分配给它,它完全抛出了 html5 shiv 脚本并阻止它处理低于此的任何内容行。

【讨论】:

  • 等一下,您已经在nav 元素上声明了xmlns 属性,例如<header><nav xmlns="http://www.w3.org/1999/html">...</nav></header>
  • 哈哈!这个细节刚刚帮助了我。我有 SVG 元素,它们中有名称空间。从他们身上剥离代码,然后繁荣! HTML5 元素在带有 Modernizr 的 IE8 中工作。所以,去图吧。
【解决方案2】:

正如 Fabrizio 所说,唯一真正的问题可能是您没有在任何其他脚本或 HTML 之前加载 modenizr。它应该加载在头部,而您的其他脚本应该在页脚中。

也许下载样板框架只是为了看看它应该如何完成 - http://html5boilerplate.com

问候,

戴夫

【讨论】:

  • 是的,样式表和JS都加载到了头部。我还尝试将 HTML5 Shiv 移到头顶。奇怪的是在我的页面顶部有一个
    元素正在显示:块分配,这让我相信它可能是缺少结束标记或类似的。
猜你喜欢
  • 2011-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-29
  • 1970-01-01
  • 2013-07-06
  • 1970-01-01
相关资源
最近更新 更多