在IE7和IE8中使用多类选择器

时间:2009-11-04 01:16:14

标签: css internet-explorer-8 internet-explorer-7

我知道IE7&据说IE8支持使用多个CSS类选择器,但我似乎无法让它工作。

CSS:

.column {
  float: left;
  display: block;
  margin-right: 20px;
  width: 60px;
}
.two.column {
  width: 140px;
}
.three.column {
  width: 220px;
}
.four.column {
  width: 300px;
}

HTML:

<div class='two column'>Two Columns</div>
<div class='three column'>Three Columns</div>
<div class='four column'>Four Columns</div>

它总是最终使用 .four.column 规则。关于我做错了什么想法?

2 个答案:

答案 0 :(得分:36)

您希望确保并使用doc类型,这样就不会在怪癖模式下渲染。例如:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test Page</title>
<style type="text/css">
.column {
  float: left;
  display: block;
  margin-right: 20px;
  width: 60px;
  border: 1px solid;
}
.two.column {
  width: 140px;
}
.three.column {
  width: 220px;
}
.four.column {
  width: 300px;
}
</style>
</head>
<body>
<div class="two column">Two Columns</div>
<div class="three column">Three Columns</div>
<div class="four column">Four Columns</div>
</body>
</html>

答案 1 :(得分:3)

并不是说你一定做错了什么,但如果你只有像以下那样的课程:

.column {
  float: left;
  display: block;
  margin-right: 20px;
  width: 60px;
}
.two {
  width: 140px;
}
.three {
  width: 220px;
}
.four {
  width: 300px;
}

然后,当您按正确的顺序应用这些类时,您仍然应该获得所需的渲染:

<div class='column two'>Two Columns</div>

如果你认为css类和编程类一样,.two类扩展了基类.column类,覆盖了它的width属性。

通过这种方式,您还可以将.two.three.four类应用于要修复其宽度的其他页面元素,而不必依赖于页面上的位置或容器。