仅使用CSS,是否可能隐藏父元素,如果子元素没有类?
<!-- hide this -->
<div class="parent">
<p class="badChild" />
</div>
<!-- do not hide this -->
<div class="parent">
<p class="goodChild" />
</div>
很遗憾,我无法更改页面的标记。我只能添加CSS规则。
仅使用CSS,是否可能隐藏父元素,如果子元素没有类?
<!-- hide this -->
<div class="parent">
<p class="badChild" />
</div>
<!-- do not hide this -->
<div class="parent">
<p class="goodChild" />
</div>
很遗憾,我无法更改页面的标记。我只能添加CSS规则。
<p class="badChild"/>
是错误的,因为<p>
是块级元素,应该像这样结束:<p class="badChild"></p>
。我已经更新了问题,针对你的问题,仅使用CSS无法实现此功能,因为CSS只允许选择子元素、第一个子元素和兄弟元素,而不是父元素,所以JavaScript或jQuery是唯一的选择。:has()
伪类。截至2015年,任何浏览器都没有此功能。:has()
,原始问题可以通过以下方式解决:li:has(> a.active) { /* styles to apply to the li tag */ }
同时,如果您需要选择父元素,您将需要使用JavaScript。
$(document).ready(function(){
$('.badChild').parent('.parent').hide();
});
.parent()
方法。
<p class="goodChild" />
是错误的。p
不是自闭合元素,你应该使用<p class="goodChild"></p>
。 - Magicprog.fr