不生效原因
Ant Design 的 Modal 默认通过
ReactDOM.createPortal
挂在<body>
下,与你的组件树平级,所以写在.module.css
/scoped less
里的选择器根本匹配不到它,就算写全局样式,也可能因为权重不足或异步挂载时机而"看不见"解决方案
先通过
getContainer
把 Modal 拉进自己的 DOM 范围,再给它一个wrapClassName
,用高权重选择器随便改
让 Modal 挂到你自己的节点里(关键)
javascript
const wrapperRef = useRef(null);
<div ref={wrapperRef}>
<Modal
getContainer={() => wrapperRef.current} // ← 挂进来
wrapClassName="my-modal-wrap" // ← 给外层一个类名
...
>
...
</Modal>
</div>
用高权重选择器写样式(别吝啬 !important
)
javascript
/* 普通 CSS / less / sass 均可 */
.my-modal-wrap .ant-modal {
color: red !important;
}
注:本人前端小白 ,如有不对的地方还请多多指教