使用這種語法有什么意義
div.card > div.name
這有什么區別
div.card div.name
A & gtB將只選擇作為A的直接子元素的B(也就是說,中間沒有其他元素)。
A B將選擇A內的任何B,即使它們之間有其他元素。
& gt是子選擇器。它只指定直接子元素。
空白( )是后代選擇器。它指定任何后代(包括孫子、曾孫等。).
IE 6及更低版本不支持子選擇器。這里有一個很棒的兼容性表。
考慮兩種情況div & gtspan { }對div span { }
這里,(空格)選擇所有的& ltspan & gt內部元素& ltdiv & gt元素,即使它們嵌套在多個元素中。& gt選擇& ltdiv & gt元素,但如果它們不在另一個元素中。
看兩個例子:
& gt(大于):
div > span {
color: #FFBA00 ;
}
<body>
<div>
<div>
<span>Hello...</span>
<p><span>Hello!</span></p>
</div>
<span>World!</span>
</div>
</body>
div.card & gtdiv.name匹配& ltdiv class = ' card ' & gt....& ltdiv class = ' name ' & gtxxx & lt/div & gt;...& lt/div & gt; 但是不符合& ltdiv class = ' card ' & gt....& ltdiv class = ' foo ' & gt...& ltdiv class = ' name ' & gtxxx & lt/div & gt;..& lt/div & gt;....& lt/div & gt;
div.card div.name兩者都匹配。
也就是說,gt;選擇器確保所選元素在右側 的>的是其左側元素的直接子元素。
不帶& gt的語法;匹配任何& ltdiv class = ' name ' & gt那是& ltdiv class = ' card ' & gt。
如果B是A的直接子代,A >B選擇B,而無論B是否是B的直接子代,A都選擇B。
<p> USING SPACE </p>
<style>
.a .b {
background-color: red;
}
</style>
<span class="a">
a
<br>
<span class="b"> a b</span>
<br>
<span class="c">
<span class="b"> a b c</span>
</span>
</span>
<br><br>
<p> USING GREATER THAN SIGN</p>
<style>
.x > .y {
background-color: red;
}
</style>
<span class="x">
x
<br>
<span class="y"> x y</span>
<br>
<span class="z">
<span class="y"> x y z</span>
</span>
</span>