如何使Material UI v1.0对话框背景透明?

时间:2018-06-03 14:40:56

标签: css reactjs dialog material-ui

我正在尝试在对话框中放置一个CircularProgress。但是对话框背景为白色,无法像早期版本那样设置为透明 - Material UI v0.2

style={{
    width: '200px',
    marginLeft: '40%',
    backgroundColor: 'transparent'
}}

我需要让对话框背景透明。这是我的代码:

<Dialog
      bodyStyle={{margin: 0, padding: 0}}
      open={true}
      style={{
        width: '200px',
        marginLeft: '40%',
        backgroundColor: 'transparent'
      }}
      overlayStyle={{backgroundColor: 'transparent'}}
    >
      <CircularProgress
        style={{display: 'inline-block'}}
        size={50}
        color={"#00db49"}
      />
</Dialog>

如何删除对话框中的滚动条,如图所示? enter image description here

2 个答案:

答案 0 :(得分:5)

您可以使用Dialog组件中的 PaperProps 属性覆盖Paper元素css属性。 (从这里:https://material-ui.com/api/dialog/

作为一个例子:

    <Dialog
      onClose={this.handleClose}
      aria-labelledby="simple-dialog-title"
      {...other}
      BackdropProps={{
        classes: {
         root: classes.root
        }
       }
      }
      PaperProps ={{
        classes: {
         root: classes.paper
        }
      }}
      >
      <DialogTitle id="simple-dialog-title">Set backup 
 account
      </DialogTitle>
       // code you want is here   
    </Dialog>

应提供纸张样式:

const styles = {
  root: {
    backgroundColor: "transparent"
  },

  paper: {
    backgroundColor: "transparent",
    boxShadow: "none",
    overflow: "hidden"
  },
};

希望这会对您有所帮助,这是一个有效的例子:https://codesandbox.io/s/j3wmyv7w2w

答案 1 :(得分:2)

啊..重写材料ui css始终是一个挑战

因为您不能使用样式和类直接覆盖material-ui嵌套div css。 因为对话框还继承了该背景叠加层的 MODAL 属性,这就是为什么你必须使用Modal道具中列出的道具之一的原因,对于这个用例,你必须覆盖背景< / strong>在Modal api docs中列出的道具。

简单来说,只需将此内容写入对话框

即可
// outside react class 
const styles = {
  root: {
    backgroundColor: "transparent"
  }
};

// In your react class 
<Dialog
  onClose={this.handleClose}
  aria-labelledby="simple-dialog-title"
  {...other}
  BackdropProps={{
  classes: {
    root: classes.root
    }
   }}
  >

我在codesandbox中附加了材料ui的工作示例。请参阅下面的

确保使用withStyles()包装组件,如下面的示例

CodeSandBox链接:https://codesandbox.io/s/5xp76wn3xp

要隐藏滚动条,此处已经回答:Hide scroll bar, but while still being able to scroll

如果您需要更多帮助,请告诉我