例如,我想在此按钮上添加页边空白
import classes from 'button.module.css';
<Button
type="submit"
variant="contained"
color="primary"
fullWidth
disabled={this.props.isLoading}
className={classes.Button}
>
{this.props.isLoading ? <CircularProgress size={20}/> : 'SIGN IN'}
</Button>
在button.module.css文件中
.Button {
margin-top: 15px;
}
是否可以使用此方法代替官方Material-ui页面中的说明那样覆盖?
答案 0 :(得分:1)
在我最近的项目中,我做过
import './style.css';
这是style.css的示例内容
.detailbox-paper {
width: 90vw;
margin: 20px auto 0px auto;
}
我在这样的元素上使用className消耗了它
<Paper className="detailbox-paper">
而且有效。这种方法要记住的一件事是您要开始使用的CSS特异性。
您还可以将内联styles={{}}
与camelCase语法一起用于属性。但是,据我所知,总是会设置内联样式,例如!important
关键字。
希望这对您的旅途有帮助。
答案 1 :(得分:1)
只需将StylesProvider
组件与injectFirst
属性一起使用:
import React from 'react'
import ReactDOM from 'react-dom'
import App from './App'
import { StylesProvider } from "@material-ui/core/styles" // <-- import this component, and wrap your App.
ReactDOM.render(
<StylesProvider injectFirst>
<App />
</StylesProvider>,
document.getElementById('root')
)
这是CSS特定性的问题,其中CSS在Material UI样式之前加载,因此被它们覆盖。如docs中所述,关于injectFirst
属性:
默认情况下,样式会最后插入的元素中 页。结果,它们比其他任何样式都更具特异性 片。如果要覆盖Material-UI的样式,请设置此属性。
答案 2 :(得分:0)