如何阻止用户代理样式表覆盖我的css

前端之家收集整理的这篇文章主要介绍了如何阻止用户代理样式表覆盖我的css前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在一个dom元素上设置cursor:pointer,但是输入没有使用它(当我将鼠标悬停在复选框上时,我没有看到指针光标).在chrome中,我看到“用户代理样式表”覆盖了我的css.跆拳道?
<!doctype html>
<body>
    <div class='a'>
        <input type='checkBox'>
    </div>

    <style>
        .a {
            cursor: pointer;
        }
    </style>
</body>

我已经看到这个问题:Why does user agent stylesheet override my styles?但是我的问题似乎不是这样的,即the recommended doctype.

使用!important在这里是不可接受的,既不直接对​​输入节点进行样式化,也不用担心浏览器用户名称的奇怪样式.这是怎么回事?

为了澄清,我的问题是关于为什么用户代理样式表覆盖css以及如何进行停止.我的问题不是我能如何解决这个问题.如果我没有错误,css的正确行为是游标样式应该被子节点继承.

这是css的预期行为吗?

解决方法

这里的“问题”是在作者样式表中实际上没有输入样式(有关更多信息,请参阅 the spec),因此使用在用户代理样式表中定义的样式.

(相关)用户代理规则(在chrome上)是:

input,input[type="password"],input[type="search"] {
   cursor: auto;
}

你可以通过几种方式实现你想要的:

>创建一个直接选择输入的css类,例如

>使用另一个css类,或者
>在已定义的类中选择输入,
>等

>在所有输入上显式设置游标样式的继承行为

对于(1):

<style>
  .a,.a input {
      cursor: pointer;
  }
</style>

对于(2):

<style>
  input {
      cursor: inherit;
  }
  .a {
      cursor: pointer;
  }
</style>

猜你在找的CSS相关文章