2013-08-30 67 views
-3

有一個佈局像這樣:CSS選擇下一場比賽

<div class="a"> 
    <div> 
     <div class="b"> 
      <div class="b">...</div> 
     </div> 
    </div> 
</div> 

是它在所有可能的樣式僅第一個div B類,而不必定義到B的整個路徑?

.a .b { 
    border: 1px solid green; 
} // Will style also the second b 
.a > div > .b { 
    border: 1px solid red; 
} // Path too strictly defined 

關當然,我的結構可沒這麼簡單,並在div b類裏面的內容可以是任何東西,所以我不希望嚴格界定從下到B的風格和所有其他元素。

應該有一個css選擇器,它說「第一次下一場比賽」

+0

你說的 「下一場比賽」 是什麼意思?你想要第一場比賽還是「下一場比賽」,無論這是什麼? – BoltClock

回答

-1

這個什麼:使用:first-child將樣式每月的第一個孩子是有階級

您例如

.a .b:first-child { 
    border:1px solid red; 
} 
+0

這也會選擇第二個'b',因爲它是'a'和'first-child'的後代。 – Chowlett

+0

哦,你是對的。對不起: -/ – chris

-1

.b:first-child 

要限制它的第一個孩子應該用你將不得不添加其他選擇器。

2

應該有一個css選擇器,它說「第一次下一場比賽」

那麼,沒有。您將不得不指定與您的元素匹配的確切結構,您已使用.a > div > .b完成該結構。如果有任何需要重寫樣式的內部元素,則需要爲這些元素添加單獨的規則。

+0

是的,我知道這一點,我只是想真的把它放在那裏。如果你正在開發模塊並使用模塊化/可重用的代碼,這種變得至關重要。 – momomo

1

,以保持與更復雜的結構你的代碼是添加另一個類的最佳方式:

HTML

<div class="a"> 
    <div> 
     <div class="b parent"> 
      <div class="b">...</div> 
     </div> 
    </div> 
</div> 

CSS

.a .b { 
    border: 1px solid green; 
} 
.a .b.parent { 
    border: 1px solid red; 
} 

SCSS

.a { 
    .b { 
     border: 1px solid green; 

     &.parent { 
      border: 1px solid red; 
     } 
    } 
} 
+0

確實。 (順便說一句,這是SCSS,而不是薩斯) – BoltClock

+0

我的不好,我用兩個SASS命名。 – zessx

+0

由於我們在談論這個話題,SCSS vs LESSCSS,你有什麼想法? – momomo

0

最簡單的CSS:

.a > div > div { 
    border: 1px solid red 
} 
+0

你爲什麼選擇'.a'? – BoltClock

+0

我正在選擇a和應用該樣式的第二個孩子。不是@MoJS使用風格嗎? –

+0

沒有OP只想樣式'.b',而不是'.a'。 – BoltClock