Material-UI 对话框覆盖?

Posted

技术标签:

【中文标题】Material-UI 对话框覆盖?【英文标题】:Material-UI dialog overlay? 【发布时间】:2018-03-04 15:36:10 【问题描述】:

我正在使用 React-Redux Material-UI 包:http://www.material-ui.com/#/components/dialog

我正在尝试在用户登录后使用圆形指示器在整个对话框组件上添加灰色覆盖层。

尝试在对话框中这样做:

return <div>
            <Dialog
                title="Login"
                actions=actions
                modal=false
                open=this.props.open
                onRequestClose=this.handleClose>

                <div className="loadingRoot">
                    TEST TEST TEST  TEST TEST TESTTEST TEST TESTTEST TEST TESTTEST TEST TESTTEST TEST TESTTEST TEST TESTTEST TEST TESTTEST TEST TESTTEST TEST TESTTEST TEST TESTTEST TEST TESTTEST TEST TESTTEST TEST TESTTEST TEST TESTTEST TEST TESTTEST TEST TESTTEST TEST TESTTEST TEST TESTTEST TEST TEST
                </div>

                <div>
                    <TextField floatingLabelText='username' name='username' onChange=this.handleTextFieldChange /><br />
                    <TextField floatingLabelText='password' name='password' onChange=this.handleTextFieldChange />
                </div>
            </Dialog>
        </div>;

会出现这样的对话框:

无论如何要让“loadingRoot”类覆盖整个对话框?

【问题讨论】:

【参考方案1】:

material-ui 对话框在内部使用内容容器呈现,该内容容器的位置为 relative (source)。因此,您可以使用 position: absolute; 将装载容器更改为基于此内容容器进行定位。您还必须增加 z-index,以便您的叠加层位于顶部。

使用css:

.loadingRoot 
  background-color: blue;
  position: absolute;
  z-index: 2000;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;

使用内联样式:

<div style=
  backgroundColor: 'blue',
  position: 'absolute',
  zIndex: 2000,
  top: 0,
  left: 0,
  bottom: 0,
  right: 0
>
  Content
</div>

【讨论】:

以上是关于Material-UI 对话框覆盖?的主要内容,如果未能解决你的问题,请参考以下文章

抽屉组件后面的material-ui覆盖div

如何在 Material-UI 中使用 Box 组件覆盖按钮?

Material-ui 样式对话框/模态背景

覆盖 Material-UI 样式不起作用

如何在 Material-UI 中为对话框设置高度?

更改material-ui对话框显示的动画