我正在使用HTML5 Boilerplate,直到现在,当我开始使用Selectivizr时,它一直没有问题。由于某些原因,我不明白,IE8产生了一个Javascript错误。
经过一些测试,我注意到当我停止使用条件浏览器注释(在Boilerplate中)时,如果根据您使用的浏览器将类添加到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>
做1}}:
<!--[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
用于所有其他浏览器,但是在官方Boilerplate模板中不存在这样的评论,因此我猜它不需要..为什么不呢?
答案 0 :(得分:3)
我们实际上最初是在<body
&gt;标签。 :)
我们移动他们有两个小原因:
您可以将课程移至<body>
,而不会出现太多问题。您也可以将lang=en
留在HTML元素上,进行清理。