modal框的dom与<div id='root'>同级别,因此不能以user-manage为父元素定义样式,以.modal定义样式会污染其他模块的模态框,(下拉框选项的级别也与root同级),即:
// F12观察组件展开dom结构
<div id='app'>
<div id='root'>
<section id='user-manage'>
页面内容:搜索行列表等
</section>
</div>
<div id='modal'>
<Modal>
模态框内容
label='角色分配' <Select>下拉框</Select>
</Modal>
</div>
<div class='select-dropdown~~~~'>
下拉框选项内容
</div>
</div>
解决方案:使用getContainer和getPopupContainer将模态框,挂在到指定id,select-dropdown挂载到其父元素下面
// 好
<Modal getContainer={() => document.getElementById('user-manage')}>
// 更好更简洁,实测有效
<Modal getContainer={false}>
// 不好
<Select getPopupContainer={() =>document.getElementById('user-manage')}>
// 好:永远在角色分配下面,相对固定
<Select mode='multiple' getPopupContainer={e => e.parentNode}>
// F12观察组件展开dom结构
<div id='app'>
<div id='root'>
<seletion>
页面内容:搜索行列表等~~~~
<div id='modal'>
<Modal>
模态框内容
label='角色分配' <Select>下拉框</Select>
<div class='select-dropdown'>
下拉框选项内容
</div>
</Modal>
</seletion>
</div>
</div>
小知识点:select-dropdown样式排版
// dom结构:
<xxx class='ant-select-dropdown-menu-item-group'>
<div>喷涂检测组</div>
<ul>
<li>业务组管理</li>
<li>数据组管理员</li>
<li>模型管理员</li>
<li>普通人员</li>
</ul>
</xxx>
<xxx class='ant-select-dropdown-menu-item-group'>
<div>挂网填浆检测组</div>
<ul>
<li>业务组管理</li>
<li>数据组管理员</li>
<li>模型管理员</li>
<li>普通人员</li>
</ul>
</xxx>
1.4个li如何一行2个:
#user-manage #modal .select-dropdown ul li{
display: inline;
float: left;
}
2.排除最后一个元素,不给下border样式
#user-manage #modal .select-dropdown .ant-select-dropdown-menu-item-group:not(:last-of-type){
border-bottom: 0.5px #CFD8DF solid;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。