Chr*_*ris 9 css material-ui jss
我正在尝试制作一个带有白色下划线的输入组件。目前,当用户将鼠标悬停在组件上时,下划线颜色变为黑色。我希望这是白色的。我相信这应该可以通过覆盖演示中和下面概述的下划线类来实现。不幸的是,它似乎不起作用,但是如果我在浏览器中手动检查样式并删除下面的行,它会在浏览器中按预期工作。
示例:https : //stackblitz.com/edit/yjpf5s(查看:https : //yjpf5s.stackblitz.io)
在浏览器中手动删除样式以获得所需的功能:
.MuiInput-underline-365:hover:not(.MuiInput-disabled-364):not(.MuiInput-focused-363):not(.MuiInput-error-366):before {
border-bottom: 2px solid rgba(0, 0, 0, 0.87);
Run Code Online (Sandbox Code Playgroud)
我正在使用的覆盖类样式:
underline: {
color: palette.common.white,
borderBottom: palette.common.white,
'&:after': {
borderBottom: `2px solid ${palette.common.white}`,
},
'&:focused::after': {
borderBottom: `2px solid ${palette.common.white}`,
},
'&:error::after': {
borderBottom: `2px solid ${palette.common.white}`,
},
'&:before': {
borderBottom: `1px solid ${palette.common.white}`,
},
'&:hover:not($disabled):not($focused):not($error):before': {
borderBottom: `2px solid ${palette.common.white}`,
},
'&$disabled:before': {
borderBottom: `1px dotted ${palette.common.white}`,
},
},
Run Code Online (Sandbox Code Playgroud)
编辑:这是最终工作的解决方案:
'&:hover:not($disabled):not($focused):not($error):before': {
borderBottom: `2px solid ${palette.common.white} !important`,
},
Run Code Online (Sandbox Code Playgroud)
小智 9
我看了一下源代码,他们正在做这样的事情
{
focused: {},
disabled: {},
error: {},
underline: {
'&:before': {
borderBottom: '1px solid rgba(255, 133, 51, 0.42)'
},
'&:after': {
borderBottom: `2px solid ${theme.palette.secondary.main}`
},
'&:hover:not($disabled):not($focused):not($error):before': {
borderBottom: `2px solid ${theme.palette.secondary.main}`
}
}
Run Code Online (Sandbox Code Playgroud)
这个对我有用。
受到 Guillaume 的回答的启发,这是我的工作代码,如果您不关心错误状态,可以简化:
const WhiteTextField = withStyles({
root: {
'& .MuiInputBase-input': {
color: '#fff', // Text color
},
'& .MuiInput-underline:before': {
borderBottomColor: '#fff8', // Semi-transparent underline
},
'& .MuiInput-underline:hover:before': {
borderBottomColor: '#fff', // Solid underline on hover
},
'& .MuiInput-underline:after': {
borderBottomColor: '#fff', // Solid underline on focus
},
},
})(TextField);
Run Code Online (Sandbox Code Playgroud)
用:
<WhiteTextField
fullWidth
onChange={this.handleNameChange}
value={this.props.name}
/>
Run Code Online (Sandbox Code Playgroud)
小智 -3
尝试这样
.MuiInput-underline-24:hover:not(.MuiInput-disabled-23):not(.MuiInput-focused-22):not(.MuiInput-error-25):before {
border-bottom: 2px solid rgb(255, 255, 255) !important;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11903 次 |
| 最近记录: |