css - 在 Material UI 中调整组件大小而不变形
问题描述
我一直在尝试从材质 UI 调整选择组件的大小。出现的问题是我无法在 className 属性的帮助下正确调整组件的大小,标签不在正确的位置,并且选择阴影高度大于我调整大小的选择框的高度(高度: 24 像素)。这是我尝试过的:
<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>
这是我使用的makestyles:
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
使选择框的阴影适合其宽度和高度沙箱
首先请将这些outlined
和selectOutlined
对象添加到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"
}
})
);
然后将它们添加到InputLabel
andSelect
元素中
<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>
推荐阅读
- python - SQLAlchemy 会话在 celery 作业和 on_success 函数中清除
- typescript - 向 Jupyterlabs 主菜单添加新菜单
- mapbox - 如何检查 mapbox 图层是否准备就绪?
- python - 如何用 try-except 语句打破这个 for 循环?
- azure-devops - Azure DevOps yaml 管道,下载的工件为空
- c# - 重新加载循环组件
- reactjs - 当我在 Link 中使用 `hreflang 属性时,我收到警告
- c# - 使用 Method 的 Generic T 创建具有相同 Generic T 的另一个对象的新实例
- computer-vision - 面对本次识别案例推荐OCR软件
- heroku - 为什么我在执行 Heroku CLI 命令时会出现这些错误?