如何解决不同版本的IE之间的CSS不兼容性/差异?

时间:2010-09-16 16:50:30

标签: html css user-interface stylesheet

我遇到的问题是,与(IE5 & IE6)

相比,我的网络应用在[{1}}中的行为有所不同

有一些(IE7 & IE8)问题,但我不想让我在CSS进行一些更改,而且网络应用程序在CSS File中可以正常工作,而不是(IE5 & IE6) 1}}所以我的问题是:

(IE7 & IE8)

任何指导和建议都将受到高度赞赏。

2 个答案:

答案 0 :(得分:0)

创建一系列样式表,如下所示:

<link id="stylesheet1" rel="stylesheet" href="css/style.css" type="text/css" media="all" /
<!--[if IE]>
  <link id="stylesheet2" rel="stylesheet" href="css/ie.css" type="text/css" media="all" />
<![endif]-->
<!--[if lte IE 6]>
  <link id="stylesheet3" rel="stylesheet" href="css/ie6.css" type="text/css" media="all" />
<![endif]-->
<!--[if lte IE 5]>
  <link id="stylesheet4" rel="stylesheet" href="css/ie5.css" type="text/css" media="all" />
<![endif]-->

的style.css:

.myclass{
  width:100px;
}

ie.css:

/* override class from style.css */
.myclass{
  width:105px;
}

ie6.css:

/* override class again from ie.css */
.myclass{
  width:110px;
}

ie5.css:

/* if necessary, override class again from ie6.css */
.myclass{
  width:115px;
}

你只需要覆盖需要被覆盖的东西。

Pekka是对的,您需要根据具体情况采取每个问题/错误/显示差异。因此,如果IE6中没有显示某些内容,则需要在ie6.css中对其进行调整。即使在此之后,它也没有在IE5中正确显示,您需要在ie5.css中进行调整。

如果你练习一点,你会更好理解。


说明:

<!--[if IE]>
  only Internet Explorer browsers (all versions) will see HTML between these statements
<![endif]-->
<!--[if lte IE 6]>
  only Internet Explorer 6 or lower browsers will see HTML between these statements
<![endif]-->
<!--[if lte IE 5]>
  only Internet Explorer 5 or lower browsers will see HTML between these statements
<![endif]-->

答案 1 :(得分:0)

使用conditional comments。将IE版本特定的css放在仅包含在特定版本中的特定文件中。