我有一个简单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;
}
不需要单独的样式表。