在CSS中,多个类中的逗号和空格是什么意思?

这是一个我不明白的例子:

.container_12 .grid_6, .container_16 .grid_8 { width: 460px; } 

在我看来, width: 460px适用于上面提到的所有类。 但是为什么有些类用逗号( , )和一些空格隔开呢?

我认为width: 460px将只应用于CSS文件中提到的方式组合类的元素。 例如,它将应用于<div class='container_12 grid_6'>但不会应用于<div class='container_12'> 。 这个假设是否正确?

 .container_12 .grid_6, .container_16 .grid_8 { width: 460px; } 

这就是说“使所有.grid_6在.container_12之内,而所有.grid_8在.container_16的460像素宽之内”。 所以下面两个将会是相同的:

 <div class="container_12"> <div class="grid_6">460px Wide</div> </div> <div class="container_16"> <div class="grid_8">460px Wide</div> </div> 

至于逗号,它是一个规则适用于多个类,就像这样。

 .blueCheese, .blueBike { color:blue; } 

它在function上等同于:

 .blueCheese { color:blue } .blueBike { color:blue } 

但减less冗长。

 .container_12 .grid_6 { ... } 

这条规则将一个DOM节点与类container_12匹配,该类具有类grid_6的后代(不一定是子级),并将CSS规则应用于类grid_6的DOM元素。

 .container_12 > .grid_6 { ... } 

在它们之间放置grid_6节点必须是类container_12的节点的直接子节点。

 .container_12, .grid_6 { ... } 

正如其他人所说,逗号是一种将规则同时应用到许多不同节点的方法。 在这种情况下,这些规则适用于具有container_12grid_6类的任何节点。

width: 460px; 将应用于带有.grid_8类的元素,该元素包含具有.container_16类的元素 ,以及具有.grid_6类的元素包含具有.container_12的元素

空间意味着遗产,逗号意味着“和”。 如果你把select器的属性
.class-a, .class-b ,您将拥有应用于这两个类中任何一个元素的属性。

希望我有帮助。

逗号对这些类进行分组(对它们应用相同的样式), 一个空白区域表示以下select器必须位于第一个select器内。

因此

 .container_12 .grid_6, .container_16 .grid_8 { width: 460px; } 

将该样式应用于.container_12类中的类.container_12.grid_8类。

不是确切的问题,但也许这会有所帮助。

只有当它具有两个类时,才将样式应用于元素,则select器应该在类名之间不使用空格。

例如:

 .class1.class2 { color: #f00; } .class1 .class2 { color: #0f0; } .class1, .class2 { font-weight: bold; } 

应用:

 <div class='class1 class2'>Bold Red Text</div> <div class='class1'>Bold Text (not red)</div> <div class='class1'><div class='class2'>Bold Green Text</div></div> 

你的例子中有四个类和两个select器:

 .container_12 .grid_6, .container_16 .grid_8 { width: 460px; } 

所以.container_12.grid_6都是类,但规则width: 460px将只应用于具有.grid_6类的元素,它们是具有.grid_6类的元素的后代。

例如:

 <div class="container_16"> <p class=".grid_6">This has a width of 480px.</p> <p>This has an unknown width.</p> </div> 
 .container_12 .grid_6, .container_16 .grid_8 { width: 460px; } 

width:460px将只应用于.grid_6.grid_8

编辑:这是一个非常好的文章给你

http://css-tricks.com/multiple-class-id-selectors/

上面的意思是说,你将样式应用到两个类,用逗号表示。

当你看到两个元素并排分开时,你可以假定它指的是一个区域内的一个区域。 所以在上面这个样式只适用于container_12类中的grid_6类和container_16类中的grid_8类。

在这个例子中:

 <div class="grid_6">This is not effected</div> <div class="container_12"> <div class="grid_6"> This is effected. </div> </div> 

第一个grid_6将不会受到影响,而第二个grid_6类将因为它被包含在container_12中而受到影响。

像一个声明

 #admin .description p { font-weight:bold; } 

只会适用于大胆的

在具有id为“admin”的区域内具有类“描述”的区域内的标签,例如:

 <div id="admin"> <div class="description"> <p>This is bold</p> </div> </div>