gpt4 book ai didi

css - 使用 createMuiTheme 覆盖 div、p、body 上的默认样式

转载 作者:行者123 更新时间:2023-12-05 03:00:50 26 4
gpt4 key购买 nike

这可能是一个简单的 Material UI 主题定制问题。

我想做的是覆盖 <body> 上的默认样式(以及 future 的其他常见标签)。现在在我的 React 树的根部:

import theme from './mui-theme'


ReactDOM.render(
<Router>
<ThemeProvider theme={theme}>
<StylesProvider injectFirst>
{/* CssBaseline kickstart an elegant, consistent, and simple baseline to build upon. */}
<CssBaseline />
<App />
</StylesProvider>
</ThemeProvider>
</Router>,
document.getElementById('root'),
);

有一个主题指定了一些东西但遗漏了 'body1'

const theme = useTheme()console.log(theme)表明它被定义为:

typography:
body1:
fontFamily: "Roboto,"Helvetica Neue""
fontSize: "1rem"
fontWeight: 400
lineHeight: 1.5

这就是我想要的设置。但是要使用该设置,我必须使用 Typographyvariant='body1' 标记.否则,文本在 div 中具有 CssBaseline 提供的样式.这是关于body 的规则标签:font-size: .875rem;我想覆盖它。

人们是否使用 createMuiTheme 覆盖了 CssBaseline 提供的样式?如果是这样,我补充说:

body: {
fontSize: '1rem',
},

显示在 console.log(theme) 上, 但如何告诉 <body>标记以实际使用该样式?

最佳答案

下面是一个重写 CssBaseline 的例子:

import PropTypes from "prop-types";
import { withStyles } from "@material-ui/core/styles";

const styles = theme => ({
"@global": {
body: {
...theme.typography.body1
}
}
});

function MyCssBaseline() {
return null;
}

MyCssBaseline.propTypes = {
classes: PropTypes.object.isRequired
};

export default withStyles(styles)(MyCssBaseline);

import React from "react";
import ReactDOM from "react-dom";
import CssBaseline from "@material-ui/core/CssBaseline";
import MyCssBaseline from "./MyCssBaseline";

function App() {
return (
<>
<CssBaseline />
<MyCssBaseline />
<span>
Here is some text in the body that is getting the body1 styling due to
MyCssBaseline.
</span>
</>
);
}
ReactDOM.render(<App />, document.querySelector("#root"));

Edit CssBaseline overrides

引用:https://material-ui.com/styles/advanced/#global-css

关于css - 使用 createMuiTheme 覆盖 div、p、body 上的默认样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56448538/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com