我试图在一个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>