You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让SCSS中&运算符仅对指定父选择器的子元素生效?

解决SCSS编译后多余子元素样式的问题

问题说明

原SCSS代码:

section[data-testid="title-cast"] {
    .ipc-media--avatar-circle,
    .ipc-avatar {
        &,
        .ipc-lockup-overlay,
        .ipc-lockup-overlay__screen {
            border-radius: 5px !important;
        }
    }
}

编译后会同时给.ipc-media--avatar-circle和.ipc-avatar都添加子元素.ipc-lockup-overlay、.ipc-lockup-overlay__screen的样式,但实际需求是仅给.ipc-avatar添加子元素样式,.ipc-media--avatar-circle只需要自身的样式。

修改方案

将两个选择器拆分,分别定义对应样式:

section[data-testid="title-cast"] {
    // 仅给 .ipc-media--avatar-circle 自身设置样式
    .ipc-media--avatar-circle {
        border-radius: 5px !important;
    }

    // 给 .ipc-avatar 自身及其子元素设置样式
    .ipc-avatar {
        &,
        .ipc-lockup-overlay,
        .ipc-lockup-overlay__screen {
            border-radius: 5px !important;
        }
    }
}

编译结果

修改后的SCSS会编译出预期的CSS:

section[data-testid="title-cast"] .ipc-media--avatar-circle {
    border-radius: 5px !important;
}
section[data-testid="title-cast"] .ipc-avatar,
section[data-testid="title-cast"] .ipc-avatar .ipc-lockup-overlay,
section[data-testid="title-cast"] .ipc-avatar .ipc-lockup-overlay__screen {
    border-radius: 5px !important;
}

这样就精准实现了需求:.ipc-media--avatar-circle仅包含自身样式,.ipc-avatar包含自身和指定子元素的样式。

内容的提问来源于stack exchange,提问作者Raghavan Vidhyasagar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 19:27:15