sass如何写出这样的效果

发布于 2022-09-05 10:12:02 字数 110 浏览 12 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

野鹿林 2022-09-12 10:12:02

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

丶视觉 2022-09-12 10:12:02

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

偷得浮生 2022-09-12 10:12:02

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

沉溺在你眼里的海 2022-09-12 10:12:02

这种情况 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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文