为了账号安全,请及时绑定邮箱和手机立即绑定

根据其子元素将CSS样式应用于元素

根据其子元素将CSS样式应用于元素

慕姐8265434 2019-11-14 09:35:21
是否可以为元素定义CSS样式,仅在匹配的元素包含特定元素(作为直接子项)时才适用?我认为最好用一个例子来解释。注意:我正在尝试设置父元素的样式,具体取决于它包含的子元素。<style>  /* note this is invalid syntax. I'm using the non-existing   ":containing" pseudo-class to show what I want to achieve. */  div:containing div.a { border: solid 3px red; }  div:containing div.b { border: solid 3px blue; }</style><!-- the following div should have a red border because     if contains a div with class="a" --><div>  <div class="a"></div></div><!-- the following div should have a blue border --><div>  <div class="b"></div></div>注意2:我知道我可以使用javascript来实现,但是我只是想知道是否可以使用某些(对我而言)未知的CSS功能。
查看完整描述

3 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

我正在处理这个问题,在我的情况下,我必须显示一个子元素并相应地校正父对象的高度(由于某些原因,我没有时间进行调试,因此自动调整大小无法在bootstrap标头中工作) 。


但是,我认为不用动态地向父级添加CSS类,而是使用CSS选择性地显示子级,而不是使用JavaScript修改父级。这将保持逻辑中的决策,而不是基于CSS状态。


tl; dr; 将aand b样式应用于父项<div>,而不是子项(当然,并不是每个人都可以做到这一点。即,由Angular组件自行决定)。


<style>

  .parent            { height: 50px; }

  .parent div        { display: none; }

  .with-children     { height: 100px; }

  .with-children div { display: block; }

</style>


<div class="parent">

  <div>child</div>

</div>


<script>

  // to show the children

  $('.parent').addClass('with-children');

</script>


查看完整回答
反对 回复 2019-11-14
  • 3 回答
  • 0 关注
  • 457 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信