【发布时间】:2013-02-27 12:36:46
【问题描述】:
所以我有一个基本的按钮类,可以将相同的样式应用于网站上的各种按钮。
我不得不把一个表单输入和一个锚标签放在一起,它们的高度和宽度是不同的。我在每个按钮上都设置了相同的内部按钮文本,只是为了显示类似的差异(显然我不需要两个相邻的“添加”按钮:P)
我不想在 CSS 中指定宽度或高度,因为内容会改变。甚至字体看起来大小也略有不同,从盒子模型来看,填充看起来还不错。
标记
<form id="" method="POST" action="">
<input class="button" type="submit" name="submit" value="Add">
</form>
<a class="button" href="">Add</a>
CSS
.button {
font-family: Arial;
background: linear-gradient(to bottom, #FCB97E 0%, #F07605 100%) repeat scroll 0 0 transparent;
border: 1px solid #F07605;
border-radius: 0.5em 0.5em 0.5em 0.5em;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
color: #FFFFFF;
cursor: pointer;
display: inline-block;
font-size: 13px;
font-weight: bold;
line-height: 13px;
outline: medium none;
padding: 5px 8px !important;
text-align: center;
text-decoration: none;
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
vertical-align: baseline;
}
编辑: 正如您在下面看到的,它不是填充,因为 firebug 中的框模型显示填充对于每个模型都是相同的,所以它是要做的事情与实际元素本身
如何在上面的 js fiddle 中的单个 CSS 类中使两者的尺寸相同?
【问题讨论】:
-
当您使用 Firebug 或类似的东西检查元素时,您还将获得浏览器在元素上设置的默认样式。也许你会发现那里的不同。
-
这是在什么浏览器中发生的?除了不同的边距外,我没有看到 Chrome 中的问题。
-
chrome 和 FF 都显示出高度差异,尽管 FF 差异更大
-
你试过
box-sizing: border-box;吗?我意识到这是很久以前提出的问题,但它通常可以解决尽管样式相同但尺寸不同的问题。 -
对我来说,
box-sizing不是问题所在。 UA 样式表将input, textarea, keygen, select, button的line-height设置为normal,而重置样式表在几个元素(包括a但不包括button)上设置font为inherit;font有line-height的简写。然后将line-height: 1设置为body。因此,我的button有一个line-height: normal,而我的a有一个line-height: 16px。检查看起来与图片相似:相同的填充和边框,但内容“不知何故”更大。