5

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

4

2 回答 2

8

//不是有效的 CSS 注释

正确解析 CSS 的浏览器将忽略//position,因为//position它不是有效的属性名称(详细信息在这里property-> IDENT S*->跟随它)。

这仅在 IE7 中有效,因为它众所周知的错误是接受带有垃圾的属性。

不仅//如此。IE7 将在此处显示红色文本:

body {
    !/!*//color: red;
}

这是最常见的利用*,例如*display: inline;作为display: inline-blockIE7 解决方法的一部分。

于 2012-06-27T03:12:56.177 回答
0

不要陷入注释掉单行或块而不使用正确的 /* */ 对的诱惑。有权访问网站文件夹的客户只是自己选择使用以下命令注释掉一行:

//*  comment here   *//

实际上,Chrome 和 Safari 将忽略此行之后的任何内容。我称之为“css杀手”。:D

于 2016-02-17T13:13:56.377 回答