使用 MUI makeStyles 在 TextField 中边距不起作用
Margin not working in TextField using MUI makeStyles
我正在尝试通过使用 MUI v5 创建 makestyles
的对象来为我的 TextField
组件添加边距。
背景颜色反映在组件中,但不反映边距和填充。这是我的代码
import React, { useState } from 'react'
import { Typography } from '@mui/material'
import { Button } from '@mui/material'
import { ButtonGroup } from '@mui/material'
import { Container } from '@mui/material'
import { makeStyles } from '@mui/styles';
import TextField from '@mui/material/TextField';
这里我使用了makeStyles
const useStyles = makeStyles({
field: {
// paddingTop: '20px',
padding: '100px',
backgroundColor: 'red',
marginBottom: '100px',
// margin: 100
// display: 'block'
},
});
export default function Create() {
const classes = useStyles()
return (
<Container>
<Typography
variant="h6"
component="h2"
gutterBottom
color="textSecondary"
>
Create a New Note
</Typography>
<form noValidate autoComplete="off" >
<TextField
className={classes.field}
label="Note Title"
variant="outlined"
color="secondary"
fullWidth
required
error={titleError}
>
</TextField>
<Button
type="submit"
color="secondary"
variant="outlined"
onClick={() => console.log("you clicked me")}
endIcon={<KeyboardArrowRightOutlinedIcon />}
>Submit </Button>
</form>
</Container>
)
}
所有这些都在一个文件中
这里是 screenshot.
TextField
只是其中 Input
的包装器组件,要针对输入进行样式设置,您可以使用 InputProps
:
<TextField
InputProps={{
className: classes.field
}}
编辑:由于 CSS 的特殊性,margin
在您的 TextField
中不起作用。你的风格被另一个人从情感上覆盖了,要修复它,使用这种技术将 className 加倍:
const useStyles = makeStyles({
field: {
// append the same classname to increase the specificity
// output has something like: .makeStyles-field-5.makeStyles-field-5
"&&": {
marginBottom: "100px"
}
}
我正在尝试通过使用 MUI v5 创建 makestyles
的对象来为我的 TextField
组件添加边距。
背景颜色反映在组件中,但不反映边距和填充。这是我的代码
import React, { useState } from 'react'
import { Typography } from '@mui/material'
import { Button } from '@mui/material'
import { ButtonGroup } from '@mui/material'
import { Container } from '@mui/material'
import { makeStyles } from '@mui/styles';
import TextField from '@mui/material/TextField';
这里我使用了makeStyles
const useStyles = makeStyles({
field: {
// paddingTop: '20px',
padding: '100px',
backgroundColor: 'red',
marginBottom: '100px',
// margin: 100
// display: 'block'
},
});
export default function Create() {
const classes = useStyles()
return (
<Container>
<Typography
variant="h6"
component="h2"
gutterBottom
color="textSecondary"
>
Create a New Note
</Typography>
<form noValidate autoComplete="off" >
<TextField
className={classes.field}
label="Note Title"
variant="outlined"
color="secondary"
fullWidth
required
error={titleError}
>
</TextField>
<Button
type="submit"
color="secondary"
variant="outlined"
onClick={() => console.log("you clicked me")}
endIcon={<KeyboardArrowRightOutlinedIcon />}
>Submit </Button>
</form>
</Container>
)
}
所有这些都在一个文件中
这里是 screenshot.
TextField
只是其中 Input
的包装器组件,要针对输入进行样式设置,您可以使用 InputProps
:
<TextField
InputProps={{
className: classes.field
}}
编辑:由于 CSS 的特殊性,margin
在您的 TextField
中不起作用。你的风格被另一个人从情感上覆盖了,要修复它,使用这种技术将 className 加倍:
const useStyles = makeStyles({
field: {
// append the same classname to increase the specificity
// output has something like: .makeStyles-field-5.makeStyles-field-5
"&&": {
marginBottom: "100px"
}
}