双向正斜杠直接IE使用特定的CSS吗?

时间:2012-06-27 02:59:17

标签: css internet-explorer browser comments compatibility

我在开发网站时发现了一些非常奇怪的东西。在尝试将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使用它?如果这是常见的做法,请告诉我。它肯定会使旧版浏览器的开发变得更加容易

2 个答案:

答案 0 :(得分:7)

//不是valid CSS comment

正确解析CSS的浏览器将忽略//position,因为//position不是有效的属性名称(详情为hereproperty - &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