Material-UI Input组件用于下划线颜色

时间:2018-06-06 11:39:11

标签: 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);

我正在使用的上层课程风格:

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}`,
        },              
    },

编辑: 这是最终工作的解决方案:

'&:hover:not($disabled):not($focused):not($error):before': {
    borderBottom: `2px solid ${palette.common.white} !important`,
},

3 个答案:

答案 0 :(得分:2)

我看了一下源代码,他们正在做这样的事情

{
   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}`
    }
}

它对我有用。

答案 1 :(得分:1)

试试这个

.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; }

答案 2 :(得分:0)

首先,像这样添加您的输入

<Input {...props} className='myClass' />

现在在您的CSS中

.gc-input-bottom::after{
    border-bottom: 2px solid $input-border-color-active!important;
    :hover{
        border-bottom: none!important;
    }
}

.gc-input-bottom::before{
    border-bottom: 1px solid $input-border-bottom-color!important;
}

在此处之前将为您提供始终可见的下划线访问,而之后将为您提供单击后的下划线访问。现在随便做什么