2012-01-08 56 views
3

好,我知道該怎麼辦分開這兩個事情:如何同時選擇給定元素及其所有子元素?

#elemID { } /* selects only one element */ 
#elemID * { } /* selects all its children elements but not the element itself */ 

而且我知道我能做到這一點是這樣的:

#elemID, #elemID * { } 

但是,有沒有辦法避免這種重複?

+0

CSS屬性一般繼承。你確定你也需要將規則應用到祖先嗎? – 2012-01-08 21:13:13

+0

CSS中的星號也應該避免太大。 – methyl 2012-01-08 21:15:15

+0

回覆:CSS屬性繼承 - 大多數不會,除非你計算字體,顏色和其他一些屬性。邊距,填充,背景默認情況下不會被繼承,只有在明確指定的情況下。 – 2012-01-08 22:10:27

回答

8

不,沒有比這更短的了。

請注意,如果你真的只希望所有的孩子#elemID,而不是所有的後代,則需要使用子組合子:

#elemID, #elemID > * 

隨着森達維達斯曾評論說,一些諸如color之類的屬性默認由後代元素自動繼承。如果您嘗試將文本顏色設置爲#elemID,則不需要將其明確應用並遞歸地應用於其中的元素。有關詳細信息,請參閱關於繼承的SitePoint Reference

0

號但是,如果同等選擇存在,你可以選擇它的父:

.parent * { ... } 
+0

這不會選擇父項。 – BoltClock 2012-01-08 21:20:41

+0

我說*如果父母有一個等效的選擇器*。如果有一個唯一可識別的父項,則可以選擇該父項作爲選擇項的基礎並使用星號。 – 2012-01-08 22:08:51

相關問題