2013-05-17 107 views
0

內其它的HTML元素是否有可能sinthesize這個CSS代碼...CSS:目標相同的元素

#myId p, #myId h1, #myId h2, #myId h3, #myId h4, #myId h5, #myId h6, {} 

...成一個簡單的規則?我抓我的頭就這一個...:P

感謝名單

佩德羅

+0

使用單個類,並使用它 –

+0

除此之外 - 任何其他方式? – Pedro

+0

使用[LESS](http://lesscss.org/),它給你很大的力量 – Qurben

回答

1

你需要一個規則來影響#myId所有後繼?那麼這應該爲你工作:

#myId * {} 
+0

我只想定位所有文本元素。 – Pedro

+0

沒有任何編譯器(Sass,LESS),一個明確的選擇器列表是唯一的出路。 –

1

如果這些是你的#myId容器內的唯一元素,你可以使用:

#myId * { } 

如果沒有,那麼你真的不能做這樣的事情不改變您的標記(添加類,將它們包裝在容器中等)。 ph1...h6元素是單獨的元素,並且在風格上不相關。從樣式表的角度來看,p標籤是h3標籤,img標籤是small標籤。

1

我通過Factor CSS跑了您的規則,這是出來的結果是:

#myId h1, #myId h2, #myId h3, #myId h4, #myId h5, #myId h6, #myId p {} 

所以,除非你需要影響的#myId所有後繼的規則,我覺得你的運氣了。

唯一的其他方式,這可能是更短的,但前提是你要不是針對一個特定的元素#myId可能是#myid :not(img) {}

+0

我只想定位所有文本元素。 – Pedro

+0

是的,CSS不會根據它是什麼類型的元素進行選擇,它不會區分它們。 –

1

如前所述,您可以使用通配符選擇器來匹配任何元素,所以#myId *' will match all elements inside#myId`。如果你只想匹配直接孩子再使用直接子選擇器:如果你想選擇後代的小名單

#myId > * 

,您可能需要調查http://lesscss.org/。這可以讓你窩風格,就像這樣:

#myId { 
    // #myId styles here 
    p, h1, h2, h3, h4, h5, h6 { 
     // Some more styles here 
    } 
} 

很顯然,你仍然不必指定每個子元素,但它可以讓你改變家長選擇一次,而不是每一個子元素。這編譯到您開始與相同的選擇器:

#myId p, #myId h1, #myId h2, #myId h3, #myId h4, #myId h5, #myId h6, {}