我發現自己從來不使用像x + y,x> y,x〜y等高級選擇器,因爲我不知道何時使用它。如果我想實施這些,我的發展速度就會變慢,因爲我不擅長製作捷徑。適當的時候使用複雜的CSS選擇器
例如。爲什麼在列表中使用x + y而不是x?或者直接選擇id或class。
我發現自己從來不使用像x + y,x> y,x〜y等高級選擇器,因爲我不知道何時使用它。如果我想實施這些,我的發展速度就會變慢,因爲我不擅長製作捷徑。適當的時候使用複雜的CSS選擇器
例如。爲什麼在列表中使用x + y而不是x?或者直接選擇id或class。
如果您不知道何時使用它,請不要。作爲一般的經驗法則,如果它讓你的開發變慢,而你不明白它的目的,那麼不要這麼做。具體來說,雖然:
x y
手段選擇嵌套在一個x
x + y
指任何y
選擇一個x
x > y
手段後,立即來到任何y
選擇任何y
這是一個直接的子女x
x ~ y
手段選擇x
我知道那些的意思。但何時使用它們?我似乎不喜歡使用這些.. – user3057928
只有這些是定位'y'的唯一方法時才使用它們。如果你不需要,你不需要!但有時候,標記是不靈活的,不受你的控制,而這些是你想要的元素的唯一方法。 – Barney
這些先進的選擇之後不能有任何y
(X> Y,X + Y,X〜y)是在某些情況下非常有用,因爲它們不僅僅是x y
更具體。一些例子:
X> Y
<ul class="nav">
<li>
One
<ul>
<li>Three</li>
<li>Four</li>
</ul>
</li>
<li>
Two
<ul>
<li>Five</li>
<li>Six</li>
</ul>
</li>
</ul>
想象一下,你想有下邊距僅爲頂級導航。很常見的情況。就這麼簡單:的
.nav > li {margin-bottom: 10px}
代替
.nav li {margin-bottom: 10px} .nav li li {margin-bottom: 0}
X + Y
<h1>Heading</h1>
<p>First paragraph.</p>
<p>Second paragraph.</p>
對於希望第一款有不同的字體風格的一些格式上的原因。簡單,再次:
h1 + p {font-style: italic;}
要做到這一點不相鄰的選擇器(「+」),你就必須添加一個類的標題後,每首段,這對於一個很長的文章是累人。
http://www.w3.org/TR/selectors/#combinators – BoltClock
如果您不舒服,您不必使用它們。 – BoltClock
本文可能會有所幫助:http://css-tricks.com/child-and-sibling-selectors/ – Andrew