我想声明一个与ie6和ie7不同的样式, 但我在css中的条件被IE7识别为IE6。我使用XP和资源管理器7。 这是我使用的代码:
<!--[if !IE]>
#mainDiv{text-align:-moz-center;}
#skyBanner {top:0px;left:0px; position:fixed;visibility:hidden;}
<![endif]-->
<!--[if lt IE 7]>
body > #skyBanner { position: fixed;}
#skyBanner {position:absolute;visibility:hidden;
left: expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );
top: expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
}
<![endif]-->
<!--[if IE 7]>
#skyBanner {position:fixed;visibility:hidden;
}
<![endif]-->
我的错误是什么?
答案 0 :(得分:3)
您不能在CSS中使用条件注释。仅限HTML。因此,您必须将不同浏览器的声明放入不同的文件中,并对其中的几个<link>
进行条件评论。
更多的内容
<html>
<head>
<!--[if !IE]>
<link rel="stylesheet" type="text/css" href="style_non_ie.css">
<![endif]-->
...
</head>
</html>
答案 1 :(得分:3)
您的!IE
评论错误,而您缺少样式标记。如果这正是HTML中存在的那么,那就是你的问题。如果这是在CSS文件中,那么您不能在该位置使用条件注释。
修正:
<!--[if !IE]>-->
<style type="text/css" media="screen">
#mainDiv {text-align:-moz-center;}
#skyBanner {top:0px;left:0px; position:fixed;visibility:hidden;}
</style>
<!--<![endif]-->
<!--[if lt IE 7]>
<style type="text/css" media="screen">
body > #skyBanner { position: fixed;}
#skyBanner {position:absolute;visibility:hidden;
left: expression( ( 0 + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px');
top: expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );
}
</style>
<![endif]-->
<!--[if IE 7]>
<style type="text/css" media="screen">
#skyBanner {position:fixed;visibility:hidden;}
</style>
<![endif]-->
同样,正如目前所写,没有浏览器看到!IE
代码。
我也不确定你是否正确地编写了其他条件。您在“body > #skyBanner {position: fixed;}
”条件下有“if lt IE 7
”,但据我所知,IE6及更低版本不支持此CSS选择器。
因此,我所描述的任何问题都可能导致您对IE6和IE7的问题。
答案 2 :(得分:0)
你需要做一些不同的方式。使用注释并将链接附加到浏览器特定的CSS文件。这样它应该有效:
<!--[if !IE]>
<link href="nonIE.css" rel="stylesheet" type="text/css">
<![endif]-->
<!--[if lt IE 7]>
<link href="IE6.css" rel="stylesheet" type="text/css">
<![endif]-->
<!--[if IE 7]>
<link href="IE7.css" rel="stylesheet" type="text/css">
<![endif]-->
您也可以使用<style>
代码而不是链接,但这是一种不好的方式。