每个h2除了那些没有课程的人?

时间:2011-06-28 17:20:15

标签: css css-selectors

我想知道如何将样式应用于每个h2,它们上面附有任何类,因此具有不会在普通h2..eg上应用样式的效果..

<h2 class="1"></h2>
<h2 class="2"></h2>
<h2 class="3"></h2>
<h2 class="a"></h2>
<h2></h2>

所有带课程的人都应该有一个风格 - 而且简单的h2不应该,(这是一个拥有数百种风格的大型网站)......所以任何简单的方法都可以做到这一点?

3 个答案:

答案 0 :(得分:5)

有一种方法可以实现,但只有支持CSS3的浏览器才能实现:非伪类。

h2[class] {
    /* Styles for <h2> with a class, regardless of the value */
}
h2:not([class]) {
    /* Styles for <h2> without classes */
}

我希望它有效!

[编辑]我在这里为您做了一个简单的演示 - http://jsfiddle.net/fL2sT/

答案 1 :(得分:3)

您要求的是默认情况下CSS的工作原理。

设置没有指定特定类的元素的样式的正确方法是设置基本元素的样式,如上面的Ahsan所示。我不知道他为什么会被投票。

h2 { property: value; }

请注意,如果H2元素确实为其分配了类,那么该样式可能会覆盖您的基本样式。

因此,如果你有h2 { color:#333; font-size:2em; }作为基本样式,然后将class="myClass"应用于.class { color: #000; },那么基本样式的颜色将被覆盖(但不是字体大小) )。这是层叠样式表中的级联

另一种方法是有条件地定位它们:

div#nav h2:first-child { property:value; }

它为您提供了上下文控制,但同样,类赋值将始终覆盖基本样式,如果类应用程序具有更高的特异性,也可以覆盖上下文定位。

答案 2 :(得分:2)

为什么不简单地使用

h2[class] { ... }