如何select具有某个类的元素?

我的理解是,使用element.class应该允许分配给某个类的特定元素接收与该类其余部分不同的“样式”。 这不是一个关于是否应该使用的问题,而是我想了解这个select器是如何工作的。 从互联网上的大量例子来看,我认为这个语法是正确的,不明白为什么这种方法不起作用。

这里是一个例子:

CSS:

 h2 { color: red; } .myClass { color: green; } h2.myClass { color: blue; } 

HTML:

 <h2>This header should be RED to match the h2 element selector</h2> <div class="myClass"> <h1>This header should be GREEN to match the class selector</h1> <h2>This header should be BLUE to match the element.class selector</h2> </div> 

应该是这样的:

h2.myClass使用类myClass查找h2。 但是你实际上想要在.myClass为h2应用样式,所以你可以使用后代select器.myClass h2

 h2 { color: red; } .myClass { color: green; } .myClass h2 { color: blue; } 

演示

这个裁判会给你一些关于select器的基本概念,并看看后代select器

h2.myClass引用所有h2class="myClass"

.myClass h2指所有h2 ,它们是class="myClass"元素的子元素(即嵌套元素)。

如果您希望HTML中的h2显示为蓝色,请将CSS更改为以下内容:

 .myClass h2 { color: blue; } 

如果你想能够通过一个类而不是它的标签来引用h2 ,你应该保持CSS原样,并给h2一个HTML:

 <h2 class="myClass">This header should be BLUE to match the element.class selector</h2> 

element.classselect器适用于这样的样式:

 <span class="large"> </span> <p class="large"> </p> .large { font-size:150%; font-weight:bold; } p.large { color:blue; } 

你的跨度和p将被分配大的字体大小和字体的重量,但蓝色只会被分配给p。

正如其他人所指出的那样,你正在使用的是后代select器。

h2.myClass只对获得myClass类直接分配的h2元素有效。

你想要这样注意它:

 .myClass h2 

它selectmyClass中具有标记名h2所有子项