2013-05-17 41 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, {}