2012-02-27 55 views
1

我想选择一个类下面的一个类,例如我有一个类名为“A”的元素,在它下面,我有另一个类名为“B”。在CSS类下选择一个类

DOM中还有其他“B”的实例,但其中没有一个实例,只有一个实例在“A”下。

要选择下的 “A” 只有 “B”,我会用:

.A B { 

CSS HERE 

} 

还是我做错了?

这里的结构:

<h2 class="A"> 
<span>TITLECONTENT</span> 
</h2> 
<p>CONTENT</p> 
<div class="B" addthis:title="TITLECONTENT " addthis:url="URL"> 
+0

你试过了吗? – BoltClock 2012-02-27 19:08:56

+0

是的,它没有工作。这可能是一个不同的问题。我试图隐藏所有具有特定类的元素,除了在特定类的元素下的元素。 – 2012-02-27 19:14:04

回答

4

没有你忘了点,

.A .B { 

} 

(假设你的意思是你的HTML是这个样子:)

<div class="A"> 
    <div class="B"></div> 
</div> 

每当你引用类,您使用. 每当您引用一个id,您使用# 每当您引用标签名称时,都不会使用前缀,例如div {}

用最少的specificity你需要针对不同的元素

定位与多个类别你追加二等没有空间的元素:.one.two

瞄准的后代元素,您包括空间:.one .descendant

+0

谢谢!我以为我可能有几乎正确的语法,但不完全。 – 2012-02-27 19:09:39

+0

Hrm,无法正常工作。 – 2012-02-27 19:13:25

+0

现在显示您的HTML和CSS – 2012-02-27 19:14:12

0

几乎正确。 您必须做

.A .B < - 请注意B点之前B.

而且,如果将来你需要选择同时具有',并在同一时间B的元素,你做这样的:

.A.B 

这将目标像DIV CLASS =” AB”,但不会针对DIV类=‘A’,也不DIV类=‘B’

2

最一般的形式是

.A .B { ... } 

这将针对与B类,其具有一个父与类A的任何元素,不管它SA直接父与否:

<span class="B"> 
    <span class="A" > 
    </span> 
</span> 

以及

<span class="B"> 
    <div> 
     <span class="A" > 
     </span> 
    <div> 
</span> 

如果.B.A直接孩子,你可以用这个目标是:

.A > .B { ... } 

CSS Child selector

0

您忘记了一个点,但如果您想要所有直接在A类元素下的B类元素,请使用大于号。所以A必须是B的直接亲本。

.A > .B { 
    /* CSS here. */ 
}