为什么Dreamweaver在评论中添加css代码,我们是否应该始终使用此注释来使用css?

时间:2010-01-08 03:04:16

标签: css xhtml dreamweaver

在评论中添加css代码有什么好处?

<STYLE type="text/css">
<!--
   H1 { color: red }
   P  { color: blue}
   -->
</STYLE>

我们应该总是或不需要使用它吗? 与javascript的CDATA相同吗?

4 个答案:

答案 0 :(得分:4)

这是古老的意味着支持15多年前的HTML 2.0浏览器。那些浏览器不知道<script><style>标签,所以除非它们内部的内容隐藏在评论标记内,否则它会将它们作为文本内容吐出到页面上,造成令人讨厌的混乱。

今天的练习绝对没有任何意义,但由于剪切和粘贴编码以及Dreamweaver等糟糕的创作工具,它仍然存在。

在作为XML的XHTML中,您不得包含注释标记,否则您的脚本或样式表实际上只是一个注释,将被完全忽略。

有些作者在XHTML中使用<![CDATA[ ... ]]>部分来表示脚本和样式表,但这是完全不同的原因。它允许您在内容中包含文字<&字符,而无需执行正确的XML操作并将其转义为&lt;&amp;。除了使代码更难阅读之外,脚本和样式中的HTML转义会混淆传统的非XML HTML解析器:在HTML4中,脚本和样式元素是神奇的,并且可以在没有转义的情况下使用这些字符(您可以使用一个序列) t use是</,因为它结束了元素。)

如果您打算在非XML HTML解析器中读取文档中的CDATA部分,则应使用CSS或JavaScript注释来隐藏CDATA部分标记:

<script type="text/javascript">//<![CDATA[
    ...
//]]></script>

<style type="text/css">/* <![CDATA[ */
    ...
/* ]]> */</style>

对于HTML 3.2中常见的老派评论包装,对CSS和JS解析进行了例外处理,以允许<!---->序列未被注意到,但事实并非如此对于<![CDATA[]]>,CSS或JavaScript解析器会将其视为语法错误。

如果,天堂禁止,你需要支持HTML 2.0,3.2 + XHTML解析器,你最终需要这个可怕的混乱:

<script type="text/javascript"><!--//--><![CDATA[//><!--
    ...
//--><!]]></script>

<style type="text/css"><!--/*--><![CDATA[/*><!--*/
    ...
/*]]>*/--></style>
谢天谢地,这永远不会发生。

你通常可以完全没有评论或CDATA残骸,因为CSS几乎不需要使用<&字符,而在JavaScript中你通常可以重新编写比以下更少的比较无害的>,以及倒置逻辑的逻辑和逻辑。当你想在字符串文字中放置<&字符时(例如'\x3C'),CSS和JavaScript都提供本机转义。

在任何情况下,大量的样式和脚本 - 您最有可能想要使用这些字符 - 通常应该在外部链接文件中,这使得这一点毫无意义。

答案 1 :(得分:2)

这是为了向后兼容不理解样式标记的渲染引擎。通过将样式放在注释中,引擎(希望)不会将它们呈现为纯文本。

由于大多数客户可以正确地呈现样式,因此这种做法不太重要,但仍然有点常见。我通常在自己的代码中忽略它,但这是个人偏好。

答案 2 :(得分:1)

您应该尽可能将styles包含在外部样式表中。当您必须将它们包含在页面上时,更常见的是查看包含在<!CDATA[[ ... ]]>块中的内容而不是注释。

评论不会在任何现代浏览器中禁用规则。

答案 3 :(得分:-1)

在Dreamweaver(DW)中,更改页面的doctype声明非常“方便”。

如果使用XHTML<!-- .... --><!CDATA[[ ... ]]>将启用以启用严格的解析和合规性。

在任何情况下,它与其他doctype声明向后兼容(几乎),DW总是使用此约定是有意义的。