[英]How to style adornment in MUI TextField?
我正在尝试仅添加startAdornment
设置的默认 14px padding-left 并希望使其成为装饰占据TextField
一半。 我似乎无法弄清楚一般如何设置startAdornment
样式。
我尝试设置 div 本身的样式,这有效,但仍然有一个潜在的 14px 填充。 我尝试设置InputAdornment
本身的样式,但似乎没有效果。
InputProps={
this.state.didChange[rowIndex] ? {
startAdornment: (
<InputAdornment
position="start"
component="div"
style={{paddingLeft: '-14px'}}
disablePointerEvents>
<div style={{ backgroundColor: '#D3D4D0', marginLeft: '-14px', padding: "10px 13px", width: "26px", color: '#a1a39b' }}>
{prevVals[rowIndex]}
</div>
</InputAdornment>
)
} : null} />
这是我当前代码的结果:
这就是我要的:
您可以忽略无关紧要的边框颜色差异,我可以更改它。
FilledInput和OutlinedInput类中有adornedStart
和adornedEnd
类。因此您可以使用它们或使用TextField InputProps
取决于您使用的变体。
<TextField
name={'text'}
variant="outlined"
InputProps={{
endAdornment:
<IconButton onClick={()=>0}>x</IconButton>,
classes: {
adornedEnd: classes.adornedEnd
}
}}
/>
您可以通过移除OutlinedInput
左侧的填充并在装饰中设置匹配的填充(基于此处输入的填充)来更改InputAdornment
的背景颜色;
import MuiTextField from '@mui/material/TextField';
import { styled } from '@mui/material/styles';
const TextField = styled(MuiTextField)(({ theme }) => ({
'& .MuiOutlinedInput-root': {
paddingLeft: 0,
},
'& .MuiInputAdornment-root': {
backgroundColor: theme.palette.divider,
padding: '28px 14px',
borderTopLeftRadius: theme.shape.borderRadius + 'px',
borderBottomLeftRadius: theme.shape.borderRadius + 'px',
},
}));
<TextField
placeholder="Password"
InputProps={{
startAdornment: (
<InputAdornment position="start">
<Visibility />
</InputAdornment>
),
}}
/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.