我在开发网站时发现了一些非常奇怪的东西。在尝试将div元素显示在屏幕顶部时,我注意到除了旧版本的IE之外,我没有在任何浏览器中实现所需的结果。为了测试一些不同的代码,而不是删除错误的行,我使用'//'来评论它(我真的不确定它是否适用于css)但是发生了什么,兼容的浏览器使用了未注释的代码,而IE使用标记为'//'的代码。这是代码:
#ban-menu-div{
position:fixed;top:0;
//position:relative; //<-- IE keeps the banner with rel pos while the other
display:block; // browsers used fixed
margin:auto;
padding:0px;
width:100%;
text-align:center;
background:black;
}
所以基本上,好像//可以用来指示新浏览器忽略特定代码行,并指示旧版本的IE使用它?如果这是常见的做法,请告诉我。它肯定会使旧版浏览器的开发变得更加容易
答案 0 :(得分:7)
//
不是valid CSS comment。
正确解析CSS的浏览器将忽略//position
,因为//position
不是有效的属性名称(详情为here,property
- &gt; IDENT S*
- &gt; follow it through)。
这只适用于IE7,因为它众所周知的错误是接受前面带有垃圾的属性。
这不仅仅是//
。 IE7将在此处显示红色文字:
body {
!/!*//color: red;
}
这通常被*
利用,例如*display: inline;
作为display: inline-block
workaround for IE7的一部分。
答案 1 :(得分:0)
不要陷入评论单行或块而不使用正确的/ * * / couple的诱惑。有权访问网站文件夹的客户自己选择使用以下方式注释掉一行:
//* comment here *//
实际上,Chrome和Safari会忽略此行之后的任何内容。我称之为&#34; css杀手&#34;。 :d