我有一个简单div的 2px 厚边框和绝对定位,直到它的父元素悬停在它上面。由于 IE 的盒子模型,说的位置div在 IE 中有些偏离,但在任何其他浏览器中都没有。我不想为 IE 添加一个完全独立的样式表,我只想在浏览者使用 IE 时修改类本身。
那么如何只为 IE 修改或添加特定的类呢?
我有一个简单div的 2px 厚边框和绝对定位,直到它的父元素悬停在它上面。由于 IE 的盒子模型,说的位置div在 IE 中有些偏离,但在任何其他浏览器中都没有。我不想为 IE 添加一个完全独立的样式表,我只想在浏览者使用 IE 时修改类本身。
那么如何只为 IE 修改或添加特定的类呢?
您需要使用一种叫做条件注释的东西。这些仅在 IE 中有效(其他浏览器会将它们视为注释),因此它们是仅针对 IE 的好方法。
示例- 如果您想在 IE6 中完成某些操作,请使用以下命令:
<!--[if IE 6]>
Special instructions for IE 6 here
<![endif]--
要了解更多信息,请访问有关条件注释的官方 MSDN 来源。
您可以在 html(或其他)文件中添加以下条件片段。之后,您可以在您的ie_stylesheet.css
<!--[if IE]>
<link type="text/css" rel="stylesheet" media="all" href="ie_stylesheet.css"/>
<![endif]-->
我认为这里有足够的解释。
您可以通过在样式表的开头添加 CSS 重置来尝试避免使用 IE 样式表。请查看以下内容:http ://www.cssreset.com/scripts/html5-doctor-css-reset-stylesheet/
重置应该有助于使元素在所有浏览器中的行为都相同。
我发现条件注释的这种用法是一种非常优雅的方式,<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;
}
不需要单独的样式表。