在Material UI中调整组件的大小而不会变形

努诺·奥利维拉(Nuno Oliveira)

我一直在尝试从材料UI调整选择组件的大小。遇到的问题是以下事实:我无法在className属性的帮助下正确调整组件的大小,标签不在正确的位置,并且选择阴影的高度大于我调整大小的选择框的高度(高度: 24px)。这是我尝试的:

<FormControl variant="outlined" className={classes.formControl}>
    <InputLabel id="demo-simple-select-outlined-label">Age</InputLabel>
    <Select
        labelId="demo-simple-select-outlined-label"
        id="demo-simple-select-outlined"
        value={age}
        onChange={handleChange}
        label="Age"
        className={classes.MuiSelect}

    >
        <MenuItem value="">
            <em>None</em>
        </MenuItem>
        <MenuItem value={10}>Ten</MenuItem>
        <MenuItem value={20}>Twenty</MenuItem>
        <MenuItem value={30}>Thirty</MenuItem>
    </Select>
</FormControl>

这是我使用的makestyle:

const useStyles = makeStyles((theme: Theme) =>
    createStyles({
        formControl: {
            margin: theme.spacing(1),
            minWidth: 120,
        },
        selectEmpty: {
            marginTop: theme.spacing(2),
        },
        MuiSelect: {

            width: "338px",
            height: "24px"

        }
    }),
);

带有示例的沙箱链接:codesandbox

最终,结果如下:

带有标签的包装盒在错误的位置

选择的阴影大于实际框

阿里·萨萨尼

更改选择元素的大小后,还应修改.MuiInputLabel-outlined相关InputLabel元素的,以及MuiSelect-outlined将选择框的阴影调整为其宽度和高度沙盒

首先,请将这些outlinedselectOutlined对象添加useStyles

const useStyles = makeStyles((theme: Theme) =>
  createStyles({
    formControl: {
      margin: theme.spacing(1),
      minWidth: 120
    },
    selectEmpty: {
      marginTop: theme.spacing(2)
    },
    MuiSelect: {
      width: "338px",
      height: "24px"
    },
    outlined: {
      transform: "translate(4px, 3px)"
    },
    selectOutlined: {
      padding: "0px 14px"
    }
  })
);

然后将它们添加到InputLabelSelect元素

<FormControl variant="outlined" className={classes.formControl}>
        <InputLabel
          className={classes.outlined}
          id="demo-simple-select-outlined-label"
        >
          Age
        </InputLabel>
        <Select
          labelId="demo-simple-select-outlined-label"
          id="demo-simple-select-outlined"
          value={age}
          onChange={handleChange}
          label="Age"
          classes={{
            root: classes.MuiSelect,
            outlined: classes.selectOutlined
          }}
        >
          <MenuItem value="">
            <em>None</em>
          </MenuItem>
          <MenuItem value={10}>Ten</MenuItem>
          <MenuItem value={20}>Twenty</MenuItem>
          <MenuItem value={30}>Thirty</MenuItem>
        </Select>
      </FormControl>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

全屏时Javafx调整组件大小

在表单中如何使用Material UI的React评分组件?

React onDragStart在Material UI Autocomplete组件中不触发

React中Material-UI中的可滚动列表组件

带有Material-ui列表的抽屉中的渲染组件

material-ui中的隐藏组件,如何防止渲染?

在React中设置Material UI的TextField组件的defultValue

Material-UI v1:如何为material-ui v1中的所有组件设置一种字体大小?

如何摆脱Material UI容器组件中的填充?

如何调整Material-UI表格组件的行高

重新调整组件大小

Material-UI-自适应网格不会在移动宽度上调整大小

React + Material UI-使用样式覆盖组件中的MuiTheme

在Material-UI中控制菜单组件的宽度

将Material-ui React组件居中于页脚元素中

如何根据URL更改Material UI组件中的道具?

使用Material-UI从React中的组件增强

如何在Material UI中的Avatar组件上使用阴影

Material UI中缺少组件

从开关加载组件时,Material-UI滑块不会拖动

根据页面大小调整组件大小的引导方式

Material-ui-封装在组件中的TableRow不会显示复选框

React Material-UI 无法调整表格大小

当导航栏中的窗口大小发生变化时,如何调整组件的大小?

Material UI:如何在 React Material Ui Stepper 中更改标签的字体大小?

React:CssBaseLine 组件在 Material UI 主题更改后不会更新

在动态网站的 Material UI Drawer 组件中链接 href

如何在组件中运行 Material UI 示例片段

如何减少 Material UI 和 formik 中 Material-UI<Select> 输入字段的高度和大小?