假设您需要六个不同的 100 像素正方形盒子,它们具有不同的特征
- 红色带边框
- 蓝色带边框
- 绿色带边框
- 红色不带边框
- 蓝色不带边框
- 绿色不带边框
您可以为每个盒子创建一个独特的类,如下所示
.redwithborder {
width: 100px;
height: 100px;
margin: 10px;
float: left;
background-color: red;
border: 3px solid black;
}
.bluewithborder {
width: 100px;
height: 100px;
margin: 10px;
float: left;
background-color: blue;
border: 3px solid black;
}
...etc
但这种方法被称为 CSS 冗余,因为它包含了许多不必要的重复代码。 相反,只需创建五个具有简单可识别名称的类,每个类处理非常具体的某个方面。
.box {
width: 100px;
height: 100px;
margin: 10px;
float: left;
}
.red {
background-color: red;
}
.blue {
background-color: blue;
}
.green {
background-color: green;
}
.border {
border: 3px solid black;
}
在您的 HTML 中,内容看起来同样简洁,只需在您想要应用于 div 的每个类之间添加一个空格。
<div class="red border box">
</div>
<div class="blue border box">
</div>
<div class="green border box">
</div>
<div class="red box">
</div>
<div class="blue box">
</div>
<div class="green box">
</div>
这种方法也提供了更好的未来灵活性。 如果你想要创建一个橙色的盒子,甚至是一个带有背景图片或其他完全独立特征的盒子,你都可以。 然后,向这个新盒子添加边框很简单,只需添加一个空格和 "border" 类名即可。
IE6 或更低版本真的支持多个类吗? 我不太确定。 有人能解答一下吗?
IE 6 支持多个类。 Ryan Brill 对此做出了 很好的解释。
基本上,如果你想在 CSS 中声明 #div.box.featured {
# background-color: #f5fbea;} IE 6 不会理解 “box”,并且会将样式应用于任何具有类 “featured” 的 div,而不仅仅是具有类 “box” 和 “featured” 的 div。 这算是一种限制,但实际上没什么大不了的。
IE6 不支持使用类和 ID 吗?
如果是这样的话,你可以将 red、green 等作为 ID(如果只使用一次)。
IE6 支持类和 ID。 将它们分开是一个好主意。 我个人会将 ID 保留给非常独特的元素,你知道这些元素在一个页面上只使用一次,比如页脚。
这可能是我读过的最好的 CSS 文章! 以这种方式做事确实使代码更清晰、更可重用。
一个问题,类的顺序是否会影响结果?
例如,
是否与<div class="class_a class_b" >
<div class="class_b class_a">
不同?谢谢!