2013-07-30 127 views
1

基本上我有一个动态创建的页面如下图所示:样式的所有儿童

<div id="content> 
DYNAMIC HERE 
</div> 

我不知道什么是在div控制,但我知道会有很多的表,可能被包含在其他div的。

例如

<div id="content"> 
    <div > 
      <div > 
      TABLE HTML HERE 
      </div> 
     </div> 
</div> 

但我永远不会知道一个表可以多远下来是。

所以我非常想要做的事,如:

#content table { 
style here 
} 

但是,这适用于所有表格中,即使他们正在嵌套许多元素下来该专区。

我该如何说这个div,它里面的所有东西都是样式表?

+0

您不能有多个具有相同ID的元素。这是无效的,并会导致事情中断。 – Spudley

+0

这是除了点,但ids应该是唯一的。希望你的示例只是使用id =“content”作为填充符? – GetSet

+0

这是一个复制和粘贴错别字对不起:) – LmC

回答

3

是的,空间句法表示要选择父的任何后代,所以#content table是罚款:

http://jsfiddle.net/XnnLG/

+1

达尼特,打我吧!对于它的价值,我的[demo](http://jsfiddle.net/FAEgj/)。 – jdepypere

+0

啊,那么*选择器是什么意思 – LmC

+1

这意味着*任何*元素。不管它是什么样的元素。 – BoltClock

-1

使用#content table应该目标#内容中的所有表。 但是,如果有一个表格,例如#test,它是从另一个样式表中设置的,#test#content table更具体,所以其他样式会否定您的样式。

您可以在样式表中使用!important来取代该样式,因此您应该在每行上使用该样式,因此它不是最干净的解决方案。

例如:

#content table { 
    color: green !important; 
    background: red !important; 
} 
+0

我不介意downvotes,但我想解释一下为什么。 – LinkinTED

2

您当前的语法是一个Descendant Selector。后代选择器类似于child selectors,但它们不要求匹配元素之间的关系必须是严格的父子关系。儿童选择器使用

#content > table 

因此,您拥有的语法对于将样式应用于嵌套表是正确的。

这个例外(如here)是如果你有更多的specific selector