【问题标题】:Margin not working in TextField using MUI makeStyles边距在使用 MUI makeStyles 的 TextField 中不起作用
【发布时间】:2021-12-02 01:36:39
【问题描述】:

我正在尝试通过使用 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

【问题讨论】:

    标签: reactjs material-ui jss


    【解决方案1】:

    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"
        }
      }
    

    【讨论】:

    • 不,我正在尝试为 TextField 本身而不是输入添加边距。
    • @RoninS28 查看我的更新答案。
    • 太棒了!它立即起作用。谢谢!
    猜你喜欢
    • 2023-02-08
    • 1970-01-01
    • 2022-12-19
    • 2012-03-07
    • 2015-08-01
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    相关资源
    最近更新 更多