条件注释和有效的XHTML

Jus*_*tin 4 html xhtml zend-framework conditional-comments

鉴于代码(看起来它应该是有效的):

<!--[if lt IE 7]> <style type="text/css" media="screen">
<!--
div.stuff { background-image: none; }
--></style><![endif]-->
Run Code Online (Sandbox Code Playgroud)

W3C验证器抛出一个拟合:

  • 注释声明中的S分隔符
  • 无效的注释声明:找到注释外的名称开始字符但在注释声明中
  • 这里不允许使用字符数据

等等

我不完全确定最新情况.这是'嵌套'评论吗?该标记由Zend Framework Viewhelper headStyle生成

$this->headStyle()->prependStyle('div.stuff { background-image: none; }',
                                 array('conditional' => 'lt IE 7')
                                );
Run Code Online (Sandbox Code Playgroud)

Wel*_*bog 7

--除非它是-->有效XML/XHTML结尾的一部分,否则您不能在注释内部.只是评论工作的方式.

这个来源:

对于兼容性,字符串" - "(双连字符)不得出现在注释中.

你应该找到一种更标准的方法来区分浏览器(或者更理想的是,有一个不需要区分浏览器的布局).


Phi*_*oth 6

" -->"关闭任何评论,没有相互嵌套评论的概念.所以在你的代码中,第一个" -->"会关闭你的两个评论.那么<![endif]-->完全没有任何评论,所以没有任何意义.