为什么非ie浏览器使用!important来读取IE条件?

时间:2012-09-28 15:11:00

标签: html css internet-explorer cross-browser

当使用IE条件(如下面的代码)和!important,时,无论浏览器背景是否为默认为背景颜色,重要的是即使在IE内部也是如此条件即可。

如何重写这个以便浏览器在IE9和其他浏览器中接受小于IE9的背景颜色和图像(高度/宽度:100%,不重复)?

注意:我打算在Wordpress网站中使用它,默认情况下主题会自动设置颜色或图像,所以我必须使用!important来覆盖默认的主题样式。 / p>

body {
<!--[if lt IE 9]>
background-color:#c1beb2 !important;
background:#c1beb2 !important;
<![endif]-->
<!--[if gte IE 9]>
background-image: url("http://example.com/wp-content/example.png") !important;
background-position:left bottom;
background-size: 100% 100%;
background-repeat: no-repeat;
<![endif]-->
<![if !IE]>
background-image: url("http://example.com/wp-content/example.png") !important;
background-position:left bottom;
background-size: 100% 100%;
background-repeat: no-repeat;
<![endif]>
}

2 个答案:

答案 0 :(得分:6)

条件注释旨在用于HTML,而不是CSS。

也就是说,在HTML中链接到这样的IE特定样式表:

<!--[if lte IE 9]> 
<link rel="stylesheet" href="/ie.css" type="text/css" media="no title" charset="utf-8" />
<![endif]-->

这是正确的方法。如果您不想创建其他特定于IE的样式表,则可以依赖CSS IE Hacks

答案 1 :(得分:0)

等等一下。据我所知,这些(!)浏览器开关在css中不起作用。所以你需要在html中创建切换部分:

<!--[if lt IE 9]>
  <link rel="stylesheet" type="text/css" href="IE9.css">
<![endif]-->
<!--[if gte IE 9]>
  <link rel="stylesheet" type="text/css" href="IEgte9.css">
<![endif]-->
然而,这是一种糟糕的风格。通常,您不希望拥有浏览器的个人样式。在极少数情况下,您也需要。查看html5样板文件,了解相关信息。