nop*_*ole 53 css web-standards
CSS中是否有规则确定在元素上定义多个类时的级联顺序?(class="one two"
vs class="two one"
)
现在,似乎没有这样的效果.
示例:Firefox上的两个div都是橙色
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style>
.one { border: 6px dashed green }
.two { border: 6px dashed orange }
</style>
</head>
<body>
<div class="one two">
hello world
</div>
<div class="two one">
hello world
</div>
Run Code Online (Sandbox Code Playgroud)
edl*_*edl 75
这取决于样式表中最后声明的那个.例如,
.one { border: 6px dashed green }
.two { border: 6px dashed orange }
Run Code Online (Sandbox Code Playgroud)
VS
.two { border: 6px dashed green }
.one { border: 6px dashed orange }
Run Code Online (Sandbox Code Playgroud)
Nic*_*ver 22
CSS中最后定义 的类是在这些情况下获胜的类.元素上的顺序无关紧要,这在我所知道的所有浏览器中都是一致的,我会尝试和相关的spec位.
在整个类不赢,属性单独获胜,如果.one
有这样的属性.two
没有你当然会看到这两个的该属性<div>
的元素.
类属性的顺序一点也不重要。这取决于几件事,在你的情况下,它是你的CSS的编写顺序。
两种样式具有相同的特异性,因此 .two 样式会覆盖 .one 的样式,因为它在样式标记中的位置较低。
正如其他答案所指出的,在 class 属性中声明的顺序没有影响 - 优先级来自 CSS 文件中的声明顺序。
但是,如果你真的想模拟一些允许你在 class 属性中“伪造”优先级的东西,你可以尝试:
.one-first { border: 6px dashed green }
.two-first { border: 6px dashed orange }
.one { border: 6px dashed green }
.two { border: 6px dashed orange }
Run Code Online (Sandbox Code Playgroud)
进而
<div class="one-first two"/>
Run Code Online (Sandbox Code Playgroud)
和
<div class="two-first one"/>
Run Code Online (Sandbox Code Playgroud)
将排序最后一个获胜的优先级(与最后一个优先的 CSS 属性类似。)
归档时间: |
|
查看次数: |
26737 次 |
最近记录: |