【发布时间】:2012-04-03 17:10:00
【问题描述】:
我们的一位网页设计师目前正在一个网站上工作,并且正在使用 HTML5 元素,她使用文档齐全的 Html5Shiv 在旧版浏览器中对其进行样式化;
http://css-tricks.com/html5-innershiv/
她今天报告了一些非常奇怪的行为,看起来这就是原因。最初它非常混乱,并且大致如下:
“页面看起来不错,我刷新它看起来不错,刷新几次,偶尔它不会将我的样式应用于 HTML5 元素”
目前最好的理论是 shiv 的启动速度不够快,并且页面在新元素注册之前加载。我想知道是否有人可以提出一种可靠的方法来包含 shiv 并确保它在其他元素之前被加载和解析,所以它们肯定会被样式化。
编辑(更多信息)
Shiv 被包含在头部,直接在标题/元标签下方;
<!--[if IE]> <script type="text/javascript" src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]-->
正在设置样式的位在页脚中并且是跨站点的。许多页面的大小会发生变化,因为它们由我们的营销团队将使用的 CMS 提供支持,因此我无法提供确切的页面大小。我想说的是,如果页面大小是一个问题并且没有解决方法,有人可以告诉我,因为这意味着我们基本上不能在这个项目上使用 HTML5(或者至少我们需要添加多余的诸如 div 之类的标记,以确保布局不会发疯)
编辑 2
不幸的是,我没有机会发布代码 - 它只能在非常模糊的情况下重新创建,并且该项目目前被标记为“绝密”:(如果没有人知道,那么我猜它要么是“每个人都知道它会发生,但有点忽略它”或者只是它不是 shiv 之外的其他东西。
【问题讨论】:
-
如果我们真正看到引用页面的来源来收集有关文档大小、shiv 位置等信息,这将有所帮助。
-
它还没有上线(仅在她的开发机器上),只能通过 IE 测试器或虚拟机使其工作 - 最初的想法是这肯定不可能只是发生过的事情对我们来说,所以我猜其他人可能刚刚遇到它并且知道解决方法。不过,我会在帖子中添加一些其他信息。
-
如果不查看实际站点就很难判断,您是否尝试过删除页面中的所有其他 javascript?我会对网站上的所有脚本进行故障排除。附带说明一下,我已经使用现代化工具有一段时间了,并且遇到了 0 个问题。在您链接的网站上,它看起来像是推荐一个新脚本:code.google.com/p/html5shiv
-
网站上除了 JQuery 之外没有其他脚本 - 我知道在这种情况下建议很棘手,我希望这将是一个有据可查的问题,但大多数网页设计师社区似乎生活在每个人都使用 Chrome 的某种奇幻世界!不幸的是,我们不是一个选择,因为我们的营销团队几乎坚持支持 IE6 :(
-
我强烈建议您尝试 Modernizer,这是更新的:modernizr.com