奇怪死了!CSS 就是无法更改 input 的背景颜色!!

阿炭 29天前  开发   69

遇到一个很奇怪的问题,我要修改一个 input 的颜色,代码如下:

input[type="text"],input[type="email"],input[type="url"],input[type="password"],textarea {

padding:5px;

width:100%;

border-radius:2px;

background-color:#f2f3f5;

border: 1px solid #f2f3f5;

-webkit-box-sizing:border-box;

-moz-box-sizing:border-box;

box-sizing:border-box;

}


以上代码运行后,border属性是生效的,但是 background-color 不管怎么修改就是不生效,用浏览器自带的检查工具进行检查,发现 background-color:#f2f3f5; 这一条确实是被叉掉了,取而代之的是浏览器默认的样式如下:

input:-internal-autofill-selected {

    appearance: menulist-button;

    background-image: none !important;

    background-color: light-dark(rgb(232, 240, 254), rgba(70, 90, 126, 0.4)) !important;

    color: fieldtext !important;

}


神奇了,为什么不用我写的CSS,而是一定要用浏览器自带的呢??

于是我加了!important; 变成:background-color:#f2f3f5 !important; 以此来提升优先级,但是没有效果,我们发现浏览器自带的样式表也加了!important,这怎么解决??搞了一两个小时了!!

2 个回答
  • 小何同志 29天前
    2

    我相信你是懂CSS的,一般的方法你也都尝试了。我是想问一下你的这个 input 是否是 password 类型的,并且浏览器之前已经记住了密码?

    如果是的话,那是改不掉的,也没必要改。原因是:当你打开该网页时,浏览器会自动填充该 input 字段,此时会同时调用浏览器内置的CSS,也就是你上述的 input:-internal-autofill-selected。

    你试着清除一下记往的密码??通过浏览器的清除隐私选项不一定能清除掉,因为有些是通过云端同步的,得退出 Chrome 或 Edge 上登录的账户。

    2 回复引用 引用
  • 阿炭 29天前
    3
    小何同志 我相信你是懂CSS的,一般的方法你也都尝试了。我是想问一下你的这个 input 是否是 password 类型的,并且浏览器之前 ...
    果然是因为这个原因!!!太感谢了,大神!
    0 回复引用 引用
    • 探知网
      4
        立即登录 立即注册
返回
发新帖