<button>填充/宽度问题

js-*_*der 9 css rendering padding width

我正在用<button> 一个表格发帖子.我的样式也a.button完全像<button>(我需要a.button制作一些JS的东西).

按钮有一些填充,固定高度.当我指定按钮/ a的宽度时,它们看起来都一样.但是当我向<button>它添加宽度时忽略了填充.

我在Chrome,Firefox和Opera中遇到此问题,所以我猜这不是渲染错误.也是同样的问题<input type="submit" />

这是基本的CSS:

.button, button {
    margin: 0;
    display: inline-block;
    border: 0;
    text-decoration: none;
    cursor: pointer;
    color: black;
    background: #ddd;
    font: 12px Verdana;
    padding: 40px; /* 40px, so you can see that it won't be rendered with width */
    text-align: center;
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<a href="#" class="button">Some text</a>
<button>Some text</button>
<!-- Works fine till here -->
<br /><br />
<a href="#" class="button" style="width:200px">Some text</a>
<button style="width:200px">Some text</button>
Run Code Online (Sandbox Code Playgroud)

小提琴:http://jsfiddle.net/9dtnz/

有什么建议浏览器忽略填充?(使用高度时的顶部和底部/使用宽度时的左右).

Mat*_*Cat 21

非常奇怪,我已经看到我的Chrome有一个box-sizing: border-box;输入元素的规则,所以填充包含在宽度...

所以要避免那只是指定box-sizing: content-box;(可能需要一些前缀).

  • 我做了一些研究,并且最初似乎不适用于Opera和FF.这样做:[prefix] -`box-sizing:content-box;` (5认同)