您好我遇到的情况,我有一个基于父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
第二类标签的样式。
您好我遇到的情况,我有一个基于父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
第二类标签的样式。
答案:在不改变HTML的情况下,单独使用CSS目前是不可能的。
进一步的信息:该CSS Selectors Level 4 specs介绍(d)新的父选择$
:
$div > p {
// styles here
}
的选择器的上方将靶向div
,不的p
。当然,只有div的子元素有直接的p
。尽管如此,这对于进一步的补充并没有多大帮助,正如BoltClock指出的那样,这些规格在未来几年还没有修改过,而且父母选择者甚至可能不会很快出现。
$语法已经走了很多年了,但更重要的是,自2013年以来,选择器-4WD尚未更新,尽管已经进行了许多*许多*更改,包括[完全删除“父选择器”]( http://stackoverflow.com/a/27983098)。我建议此时不提供样本或参考规范。此外,该规范的修订版并未定义$表示法是否可用于基于第一个div来定位h3 - 因此,虽然您可以定位第一个div,但这并不能真正起到帮助作用。 – BoltClock
感谢您的回复,但有什么办法,我可以以某种方式标记封闭的div例如div(div [class =“First”] p)〜div [class =“Second”] h3 {color:red; }我知道上面的语法是错误的,但是我们可以分别关闭div。 – Raj001
看到我的答案,用纯CSS这是不可能的。你需要改变你的HTML才能做到这一点。 – Paul
只有'css'不能实现检测'p'是否是'div.First'的子元素。你需要使用'javascript'或者像'jQuery'之类的库。 – Shashank
谢谢Shashank,但是无论如何我们只能使用像div这样的css [class =“First”] p〜div [class = “Second”] h3 { color:red; }不完全是上面的代码,但类似的东西,我可以指出,“第一”div是封闭的。 – Raj001
但是,如果你想改变HTML结构并在'.First'中放入'.Second',那么你可以做类似https://jsfiddle.net/Lg0wyt9u/92/ –