sass如何写出这样的效果

比如我有一个class为a,class为a的元素中可能出现class为b或者c的子元素,如何定义当且仅当class为a的元素内部有class为b的子元素时背景色才为红色的效果,这种sass的语法应该怎么写?

阅读 3.5k
4 个回答

无法实现,建议你可以换个思路。比如在写html(或html模板)的时候有b元素的a元素 就给a元素加一个类,这样的话就好实现你要的效果了对吧?

无法实现的,虽然sass有if等逻辑判断可以使用变量操作,但是变量是无法绑定为dom元素的。

新手上路,请多包涵

都是父级决定子级的,没有反过来搞,js或许可以做到,但是没意义,建议,给父元素单独一个红色背景样式,这个样式下改变子元素样式。

这种情况 JS 控制比较好。CSS 不能反过来匹配,非要用的可以参考一下,在末尾添加一个 bg 标签,比较 hack

.a {
  position: relative;
  
  .bg {
    position: absolute;
    z-index: -1;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
  }

  .b ~ .bg {
    background: red;
  }
}
<div class="a">
  <div class="b">I'm b</div>
  <div class="bg"></div>
</div>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题