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

CSS中:not(style) ~ :not(style)选择器解析及MUI样式覆盖方法

关于MUI中:not(style) ~ :not(style)选择器的解释

选择器各部分含义

  • :not(style):CSS否定伪类,作用是排除<style>标签。MUI组件内部会自动注入内联<style>标签作为子元素,这个伪类就是为了跳过这些样式标签,只匹配实际的内容子元素。
  • >:子组合器,仅匹配目标元素的直接子元素,不会选中深层后代。
  • ~:后续兄弟组合器,匹配所有跟在指定元素之后的同级元素(只要它们共享同一个父元素)。

整体作用

把这些部分组合起来,.css-1rb8ayf-MuiStack-root > :not(style) ~ :not(style)的实际效果是:
给MUI Stack组件根元素下的所有非<style>直接子元素,且这些子元素前面还有另一个非<style>直接子元素添加上margin-top:40px样式。说白了就是给Stack里的内容子元素自动添加上下间距,同时忽略MUI自己生成的<style>标签,避免给无效元素加间距。

为什么需要!important覆盖

这个自动生成的选择器优先级比你直接给Stack根元素加的样式高:它包含了类选择器+两个伪类选择器,而你的自定义样式只是单纯的类选择器。按照CSS优先级规则,前者权重更高,所以直接写margin-top:0会被覆盖,必须用!important强制提升优先级才能生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 15:17:24