据我了解,类应该优先于样式而不是元素样式.我试过的风格button,input[type=button]和input[type=submit],发现与input(button和submit)时,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只是特定的吗?
你不是在比较苹果和苹果.属性选择器具有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)