为什么填充在a
和button
元素之间的计算方式不同?
HTML
<button type="button">CLICK</button>
<a href="#">LINK</a>
CSS
button {
padding: 10px;
height: 30px;
border: 0;
background: #ccc;
line-height: 30px;
}
a {
display: inline-block;
padding: 10px;
height: 30px;
background: #ccc;
line-height: 30px;
}
答案 0 :(得分:2)
Chrome(和Firefox)中按钮的默认box-sizing
值为border-box
:
即。元素的总高度(包括填充(和边框和边距))为30px
,而不是链接的50px
。您可以通过设置
box-sizing: content-box;
明确。
More info about the box model.
为什么border-box
是我不能说的默认值。我还没有找到它的规格。 Chrome,Firefox和Safari似乎都是这样做的(没有测试其他浏览器)。
答案 1 :(得分:0)
<a href...>
链接永远不会有设置高度,如果你检查html,你可以看到;真正做的是给它一个行高和填充。当你写height: 30px
时,它是没用的。
关于这一点,你 定义了<button>
的高度,这就是为什么它与你设置链接的方式看起来不一样
Here is a fiddle通过删除<button>