【发布时间】:2011-11-30 01:12:46
【问题描述】:
我知道可以在 HTML 中为一个元素指定多个类:
<div class='one two'>Text</div>
似乎可以从 Javascript 中以单个字符串的形式访问类。
当使用冲突的属性指定类时会发生什么?比如
div.one {
background-color: red;
color: blue;
}
div.two {
background-color: green;
}
结果是否取决于指定类的顺序?例如,我是否可以合理地期望上面的 div 显示为蓝色文本和绿色背景,因为 two 类被评估为第二个,覆盖 background-color 属性?
【问题讨论】:
-
更多的是应该产生什么结果(wrt标准等)的问题。当然,我可以在我尝试支持的所有 8 种浏览器上对其进行测试,但两年后这些信息甚至可能都派不上用场了
-
@FlyBy - 我不同意;你没看到人们在这里回答问题的速度有多快吗??? ;)
-
据我所知,这取决于编写的 css 文件中类的顺序。在这种情况下,无论 div 类是
one two还是two one,它都应该是绿色背景上的蓝色文本。如果您更改 css 并将之前的div.two定义为div.one您将在红色背景上看到蓝色文本... -
名称“cascading”应该提供强有力的提示——“last”将优先并覆盖属性。任何孩子没有指定的东西都留给了父母,一直到页面自己的样式表和默认浏览器样式。