CSS输入(按钮)边界特异性

ale*_*oco 1 html css border

据我了解,类应该优先于样式而不是元素样式.我试过的风格button,input[type=button]input[type=submit],发现与input(buttonsubmit)时,border从元素风格,将优先于border样式类.但是,我没有注意到这个行为button.

这是一个展示情况的例子:

<!DOCTYPE html>
<html>
<head>
    <title>Page Title</title>
    <style>
        input[type=button], button {
            border: none;
        }

        .class {
            border: 1px solid red;
        }
    </style>
</head>
<body>
    <input type="button"  class="class" value="With class" />
    <input type="button" value="Without class" />
    <button class="class">With class</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

以上呈现如下:

我注意到Safari,Firefox和Chrome中的行为相同.

难道我做错了什么?在这种情况下,我是否误解了特异性?这border只是特定的吗?

zzz*_*Bov 7

你不是在比较苹果和苹果.属性选择器具有0,1,0类似于类的特异性.但是,元素选择器具有特异性0,0,1,这使得您的第一个选择器input[type="button"]具有0,1,1大于的特异性0,1,0.

http://www.w3.org/TR/CSS2/cascade.html#specificity

如果您希望它们具有相同的特异性,您应该使用:

input.class
input[type="button"]
Run Code Online (Sandbox Code Playgroud)

-要么-

.class
[type="button"]
Run Code Online (Sandbox Code Playgroud)