1

我正在使用HTML5 Boilerplate,直到现在我开始使用Selectivizr时才遇到问题。出于某种我不明白的原因,IE8 产生了 Javascript 错误。

经过一些测试,我注意到当我停止使用html根据您使用的浏览器添加一个类的条件浏览器注释(在样板中)时错误消失了:

<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->

正如我所说,当我删除上面的代码并将其替换为<html>一切正常时。

由于我不想完全删除条件注释(它们帮助我编写特定于浏览器的 css),所以我想做同样的事情,但html我不会将其应用于<body>

<!--[if lt IE 7]> <body class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]>    <body class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]>    <body class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <body class="no-js" lang="en"> <!--<![endif]-->

一切似乎都可以正常工作,但是由于我是新手,我只想验证此解决方法是否可以?还是有缺点?

还有一个题外话:当用户使用 Firefox 或 Chrome 访问网站时,body会“使用”什么?我猜它会body在没有课程的情况下“使用”?

我的逻辑会告诉我写另一个条件评论,以确保“使用”body所有其他浏览器,但是在官方样板模板中不存在这样的评论,因此我猜它不需要......为什么不呢?

4

1 回答 1

3

实际上,我们最初将它们放在<body> 标签上。:)

我们移动它们有两个小原因:

  • IE6 中的多个类名错误
  • 将 body 元素用于自己的类的 CMS。

<body>您可以毫无问题地将课程移至。您也可以留lang=en在 HTML 元素上,进行清理。

更多细节在这里:https ://github.com/h5bp/html5-boilerplate/issues/44

于 2011-11-10T17:25:57.233 回答