开发者社区> 问答> 正文

CSS 父元素如何通过判断子元素来设置样式

大家好,问题是这样的,默认情况下:

<div class="main">
    <div class="first"></div>
    <div class="second"></div>
</div>
设置了 .main 的样式为:

.main { padding: 10px; }
而当子元素为iframe的时候,想设置为:

padding: 0;
<div class="main">
    <iframe></iframe>
</div>

想问一下有没有 css 直接设置的方法。

假如用 jQuery 的话,可以用:

全选复制放进笔记$('.main').css('padding', '10px')

.find('> iframe').parent().css('padding', '0');

展开
收起
a123456678 2016-03-26 09:58:51 8468 0
1 条回答
写回答
取消 提交回答
  • 其实你从浏览器的角度来考虑这件事情,便不会有疑问了。

    假如浏览器支持父级或者前面兄弟元素选择器的话,就不得不在渲染到当前元素时,倒回去找到特定的元素,重新渲染。

    因为选择器是可以组合的,甚至还会造成很多其它元素也需要重新渲染(想象.someClass:parent div),这样带来的reflow和repaint会造成难以估量的性能问题,甚至计算盒模型的栈保不齐都要溢出。所以自然不会有类似的选择器出现了。

    2019-07-17 19:15:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
零基础CSS入门教程 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载