2016-02-26 73 views
0

您好我遇到的情况,我有一个基于父div类风格h3元素造型为DIV类通过使用CSS

例如基于顶格:

<div class="First"> 
<p>This is sample text</p> 
</div> 
<div class="Second"> 
<h3>This is sample header</h3> 
</div> 

现在我想如果在名为First的类中有一个p标签,我想要改变h3第二类标签的样式。

+0

只有'css'不能实现检测'p'是否是'div.First'的子元素。你需要使用'javascript'或者像'jQuery'之类的库。 – Shashank

+0

谢谢Shashank,但是无论如何我们只能使用像div这样的css [class =“First”] p〜div [class = “Second”] h3 { color:red; }不完全是上面的代码,但类似的东西,我可以指出,“第一”div是封闭的。 – Raj001

+0

但是,如果你想改变HTML结构并在'.First'中放入'.Second',那么你可以做类似https://jsfiddle.net/Lg0wyt9u/92/ –

回答

0

答案:在不改变HTML的情况下,单独使用CSS目前是不可能的。

进一步的信息:该CSS Selectors Level 4 specs介绍(d)新的父选择$

$div > p { 
    // styles here 
} 

的选择器的上方将靶向divp。当然,只有div的子元素有直接的p。尽管如此,这对于进一步的补充并没有多大帮助,正如BoltClock指出的那样,这些规格在未来几年还没有修改过,而且父母选择者甚至可能不会很快出现。

+0

$语法已经走了很多年了,但更重要的是,自2013年以来,选择器-4WD尚未更新,尽管已经进行了许多*许多*更改,包括[完全删除“父选择器”]( http://stackoverflow.com/a/27983098)。我建议此时不提供样本或参考规范。此外,该规范的修订版并未定义$表示法是否可用于基于第一个div来定位h3 - 因此,虽然您可以定位第一个div,但这并不能真正起到帮助作用。 – BoltClock

+0

感谢您的回复,但有什么办法,我可以以某种方式标记封闭的div例如div(div [class =“First”] p)〜div [class =“Second”] h3 {color:red; }我知道上面的语法是错误的,但是我们可以分别关闭div。 – Raj001

+0

看到我的答案,用纯CSS这是不可能的。你需要改变你的HTML才能做到这一点。 – Paul