我有一个简单的div
,边框宽2px,绝对定位隐藏,直到其父元素悬停在上面。由于IEs框模型,所以div
的位置在IE中有点偏,但不是任何其他浏览器。我不想为IE添加一个完全独立的样式表,我只想在浏览者使用IE时修改类本身。
那么如何修改或仅为IE添加特定类?
答案 0 :(得分:2)
您需要使用名为条件评论的内容。这些只能在IE中工作(其他浏览器会将它们视为注释),因此它们只是一种很好的方式来定位IE。
示例 - 如果您想在IE6中完成某些操作,请使用以下命令:
<!--[if IE 6]>
Special instructions for IE 6 here
<![endif]--
要了解详情,请访问official MSDN source regarding conditional comments。
答案 1 :(得分:1)
您可以在html(或其他)文件中添加以下条件片段。之后,您可以在ie_stylesheet.css
<!--[if IE]>
<link type="text/css" rel="stylesheet" media="all" href="ie_stylesheet.css"/>
<![endif]-->
我认为有足够的解释here。
答案 2 :(得分:0)
您可以通过在样式表的开头添加CSS重置来尝试避免IE样式表。请查看以下内容:http://www.cssreset.com/scripts/html5-doctor-css-reset-stylesheet/
重置应有助于使元素在所有浏览器中的行为相同。
答案 3 :(得分:0)
我发现conditional comments的这种用法是一种非常优雅的标记<html>
标记的方法,可以在CSS和JS中使用这些类:
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html lang="en"> <!--<![endif]-->
作为一个人为的例子,如果您想要将IE6作为目标,使所有链接变为红色,那么您将使用这样的特殊性:
.lt-ie7 a {
color: red;
}
无需单独的样式表。