鉴于代码(看起来应该有效):
<!--[if lt IE 7]> <style type="text/css" media="screen">
<!--
div.stuff { background-image: none; }
--></style><![endif]-->
W3C验证器抛出一个契合:
等等
我不确定最新情况。这是'嵌套'评论吗?该标记由Zend Framework Viewhelper headStyle
生成$this->headStyle()->prependStyle('div.stuff { background-image: none; }',
array('conditional' => 'lt IE 7')
);
答案 0 :(得分:7)
除非--
以有效的XML / XHTML结尾,否则您不能在评论中添加-->
。就是评论工作的方式。
来自this source:
对于兼容性,字符串“ - ”(双连字符)不得出现在注释中。
你应该找到一种更标准的方法来区分浏览器(或者更理想的是,有一个不需要区分浏览器的布局)。
答案 1 :(得分:6)
“-->
”关闭任何评论,没有相互嵌套评论的概念。因此,在您的代码中,第一个“-->
”会关闭您的两条评论。然后<![endif]-->
完全没有任何评论,所以没有任何意义。
答案 2 :(得分:2)
这是嵌套的评论。他们是不允许的。
答案 3 :(得分:0)
...为什么要评论<style>
的全部内容?这并不是说您编写的浏览器足以显示它。 (甚至命令行浏览器也会隐藏样式/脚本块。)
答案 4 :(得分:0)
您应该在问题跟踪器上发布新问题。这是纠正这些错误的好方法。 http://framework.zend.com/issues/secure/Dashboard.jspa
答案 5 :(得分:0)
answer given by Phil Booth是正确的,因为您的HTML评论语法不正确; HTML注释不能嵌套。但是,我想更进一步......
您不应使用HTML注释来隐藏您的CSS或JavaScript以进行XHTML验证。相反,您应该使用CDATA
标记。这是最通用的解决方案,几乎支持所有新旧浏览器和浏览器版本。
<head>
<style type="text/css">
/* <![CDATA[ */
div.stuff { background-image: none; }
/* ]]> */
</style>
<script type="text/javascript">
/* <![CDATA[ */
function myFunction() {
}
/* ]]> */
</script>
</head>
这些文章详细介绍了为什么上述解决方案是正确的解决方案: