【问题标题】:css overridden by Chrome被 Chrome 覆盖的 CSS
【发布时间】:2018-03-08 09:03:23
【问题描述】:

谁能解释一下?

所以该工具显示 rgb(250,255,189) 被鲑鱼取代(因为 rgb 被划掉了)尽管显示的是鲑鱼,但摘要行和实际显示的颜色是 rgb(250... ) 颜色!

自动填充 css 似乎会覆盖我们可能想要设置的任何样式,但即使是 Chrome 开发人员工具似乎也不知道如何解释它,这已经够糟糕了......

我有一个比用户代理样式表更具体的规则,相同的定义但也指定了类,但 Chrome 的自动填充仍然获胜 - 任何解决方案?

谢谢

【问题讨论】:

    标签: css google-chrome chromium


    【解决方案1】:

    你可以试试-webkit-autofill

    input {
      background-color: white;
    }
    /*input:focus {
      background-color: grey
    }*/
    input:-webkit-autofill{
      transition: background-color 1s ease-in-out 5000s;
    }
    
    body {
      background: #333;
      color: #fff;
      display: flex;
      font-size: 2em;
      justify-content: center;
    }
    <form>
      <div class="form-group">
        <label for="exampleInputFirst">First Name</label>
        <input type="text" class="form-control input-lg" id="exampleInputFirst">
      </div>
      <div class="form-group">
        <label for="exampleInputLast">Last Name</label>
        <input type="text" class="form-control input-lg" id="exampleInputLast">
      </div>
      <div class="form-group">
        <label for="exampleInputEmail">Email Address</label>
        <input type="email" class="form-control input-lg" id="exampleInputEmail">
      </div>
     
      <button type="submit" class="btn btn-primary btn-lg btn-block">Submit</button>
    </form>

    【讨论】:

    • 您可能只能在图片中看到 - 我的鲑鱼颜色确实使用了 CSS 中的 -webkit-autofill 伪选择器,您的答案的重要部分是我认为的过渡。它几乎可以工作。当输入获得焦点 (:focus) 时,我的 CSS 也有灰色背景色。我现在遇到的问题是,当我点击自动填充时,我所在的字段即使在我离开它时也会保持灰色背景。我该如何解决?谢谢
    • 抱歉,我没有更好的主意。您可能需要一个比“-webkit-autofill”强且比 input:focus 弱的 css 规则。恐怕不可能使用“背景颜色”或“过渡”或其他简单的 CSS 来完成这项工作。如果您找到解决方案,请告诉我,谢谢。
    【解决方案2】:

    我认为您实际上遇到了webkit-autofill 的问题。但只有当 Chrome 自动填充您的输入字段时,该颜色才会出现。大概就是这样。

    看看 MDN 的这句话:

    https://developer.mozilla.org/en-US/docs/Web/CSS/:-webkit-autofill

    许多浏览器的用户代理样式表在它们的 :- webkit-autofill 样式声明,使它们不能被网页覆盖,而无需借助 JavaScript hack。

    所以我想这可能是个问题。您是否尝试在隐身窗口中查看页面?这样 Chrome 的自动填充功能就不会开启吗?

    【讨论】:

    • 是的,它是自动填充的。这就是问题所在。为什么它会忽略我更具体的网站样式(并使用 -webkit-autofill 伪选择器)。根据King Rui在下面的回答,这似乎是一个过渡的事情,因为我的元素是具有某个类的输入并且已被自动填充。所以我的 input.class:-webkit-autofill{background-color:salmon !important} 的 CSS 应该占主导地位(实际上 Chrome 开发人员工具建议它是)但我认为过渡已经取代了它。
    • 'transition' 之所以有效,是因为它“延迟”了浏览器 webkit-autofill 样式的背景颜色变化。如果你等待足够长的时间(这段代码5000s),你会看到浏览器改变了背景颜色,但是没有人会等待这么长时间^_^。
    猜你喜欢
    • 2019-11-22
    • 1970-01-01
    • 2015-10-03
    • 2018-06-27
    • 2016-05-07
    • 1970-01-01
    • 2022-12-18
    • 2015-04-24
    • 1970-01-01
    相关资源
    最近更新 更多