Nas*_*ser 11 html css comments
放轻松我吧.我只是在学习HTML.
收录http://www.w3.org/TR/html-markup/syntax.html#comments以及我见过的许多其他网站http://www.w3schools.com/tags/tag_comment.asp
他们说HTML评论 <!-- text -->与!下一个破折号之间没有空格.
然而,我在下面说明,只有当我写的时候<! -- test --> 才会被忽略.注意在<!和之间添加的空间 --
这是HTML代码
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
<!-- td {border: 1px solid gray;} -->
</style>
</head>
<body>
<table>
<tr> <td> test </td> </tr>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在你运行之前,桌子是否应该有边框?
如果text/css中的东西真的被注释掉了,那么表格不应该有边框,对吧?但确实如此.我在linux mint 14下的Chrome版本24.0.1312.52上尝试了这个,还有firefox 18.0
现在当我将线路更改为
<! -- td {border: 1px solid gray;} -->
Run Code Online (Sandbox Code Playgroud)
现在注意额外的空间.然后表格显示没有预期的边框.当我实际删除整行时也是如此:
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
</style>
</head>
<body>
<table>
<tr> <td> test </td> </tr>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
问题是:是评论 <!-- text -->还是它<! -- text -->?
Ila*_*ala 26
CSS不接受HTML <!-- comment here -->评论.相反,CSS用于/* comment */评论行.试试吧.
Juk*_*ela 13
该字符串<! --不会注释掉任何内容.相反,在CSS中它是一个语法错误,并且CSS 错误处理规则暗示在这种情况下所有样式表都被忽略.
字符串<!--也不会启动注释,但是通过CSS 注释规则,它(以及-->)在某些上下文中被允许和忽略(跳过).因此,样式表
<!-- td {border: 1px solid gray;} -->
Run Code Online (Sandbox Code Playgroud)
被视为
{border: 1px solid gray;}
Run Code Online (Sandbox Code Playgroud)
您可以使用W3C CSS Validator进行检查.在第一种情况下,使用空格会报告错误,并且不会报告有效的CSS规则.在第二种情况下,不报告错误,并且规则显示为有效.
在CSS中,注释始终以... /*结尾*/.
其原因为特殊规则 <!--和 -->是很久以前(我们正在谈论的Netscape 1仍然在使用的时候),一些浏览器不承认style在所有元素.这意味着他们忽略了<style>和</style>标记并处理它们之间的内容,就好像它是普通的HTML内容一样.这会导致样式表在这些浏览器的页面内显示.为防止这种情况,要"隐藏样式表",样式表将包装在HTML注释分隔符之间.旧浏览器然后简单地忽略style元素的内容.但是,必须在CSS规范中添加一个特殊规则以允许分隔符.
这是古老的历史,但旧的习惯占上风,甚至从其他人的代码中复制而不理解他们的意思.没有理由长时间"隐藏样式表",现在这个技巧已成为潜在风险(由于可能干扰XHTML规则或人们的混淆和打字错误).
所以,永远不要在CSS中使用<!--(或<! --).