在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_12
或grid_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
编辑:这是一个非常好的文章给你
上面的意思是说,你将样式应用到两个类,用逗号表示。
当你看到两个元素并排分开时,你可以假定它指的是一个区域内的一个区域。 所以在上面这个样式只适用于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>