ros*_*ani 12 customization node.js reactjs material-ui
我需要为一些Material-UI组件添加填充或边距,但找不到一种简单的方法.我可以将这些属性添加到所有组件吗?这样的事情:
<Button color="default" padding={10} margin={5}>
Run Code Online (Sandbox Code Playgroud)
我知道这可以使用纯CSS和类,但我想用Material-UI方式做.
Mig*_*dan 53
您可以通过先导入组件在 BOX 组件中使用 de "Spacing":
import Box from '@material-ui/core/Box';
Run Code Online (Sandbox Code Playgroud)
Box 组件用作要“修改”间距的组件的“包装器”。
然后您可以在组件上使用下一个属性:
space 实用程序将速记边距和填充道具转换为边距和填充 CSS 声明。道具使用格式 {property}{sides} 命名。
财产是以下之一:
m - 用于设置边距的类 p - 用于设置填充的类
其中边是以下之一:
t - 对于设置 margin-top 或 padding-top 的类
b - 对于设置 margin-bottom 或 padding-bottom 的类
l - 对于设置 margin-left 或 padding-left 的类
r - 对于设置 margin-right 或 padding-right 的类
x - 对于同时设置 *-left 和 *-right 的类
y - 对于同时设置 *-top 和 *-bottom 的类
空白 - 用于在元素的所有 4 个边上设置边距或填充的类
举个例子:
<Box m={2} pt={3}>
<Button color="default">
Your Text
</Button>
</Box>
Run Code Online (Sandbox Code Playgroud)
Nea*_*arl 14
在 Material-UI v5 中,可以使用sxprops 更改按钮样式。您可以在此处查看边距/填充系统属性及其等效的 CSS 属性。
<Button sx={{ m: 2 }} variant="contained">
margin
</Button>
<Button sx={{ p: 2 }} variant="contained">
padding
</Button>
<Button sx={{ pt: 2 }} variant="contained">
padding top
</Button>
<Button sx={{ px: 2 }} variant="contained">
padding left, right
</Button>
<Button sx={{ my: 2 }} variant="contained">
margin top, bottom
</Button>
Run Code Online (Sandbox Code Playgroud)
如果您想快速构建组件原型,则属性简写如m或p是可选的,如果您希望代码更具可读性,则可以使用普通的 CSS 属性。
下面的代码与上面的代码等效,但使用 CSS 属性:
<Button sx={{ m: 2 }} variant="contained">
margin
</Button>
<Button sx={{ p: 2 }} variant="contained">
padding
</Button>
<Button sx={{ pt: 2 }} variant="contained">
padding top
</Button>
<Button sx={{ px: 2 }} variant="contained">
padding left, right
</Button>
<Button sx={{ my: 2 }} variant="contained">
margin top, bottom
</Button>
Run Code Online (Sandbox Code Playgroud)
Material-UI's styling solution uses JSS at its core. It's a high performance JS to CSS compiler which works at runtime and server-side.
import { withStyles} from '@material-ui/core/styles';
const styles = theme => ({
buttonPadding: {
padding: '30px',
},
});
function MyButtonComponent(props) {
const { classes } = props;
return (
<Button
variant="contained"
color="primary"
className={classes.buttonPadding}
>
My Button
</Button>
);
}
export default withStyles(styles)(MyButtonComponent);
Run Code Online (Sandbox Code Playgroud)
You can inject styles with withStyle HOC into your component. This is how it works and it's very much optimized.
EDITED: To apply styles across all components you need to use createMuiTheme and wrap your component with MuiThemeprovider
const theme = createMuiTheme({
overrides: {
MuiButton: {
root: {
margin: "10px",
padding: "10px"
}
}
}
});
<MuiThemeProvider theme={theme}>
<Button variant="contained" color="primary">
Custom CSS
</Button>
<Button variant="contained" color="primary">
MuiThemeProvider
</Button>
<Button variant="contained" color="primary">
Bootstrap
</Button>
</MuiThemeProvider>
Run Code Online (Sandbox Code Playgroud)
小智 7
import Box from '@material-ui/core/Box';
<Box m={1} p={2}>
<Button color="default">
Your Text
</Button>
</Box>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14745 次 |
| 最近记录: |