【发布时间】:2012-09-07 00:45:30
【问题描述】:
所以,我使用display: table-cell 将两个按钮放在一起,这样如果一个按钮的文本溢出到下一行,两个按钮的高度相同。我有border-collapse: separate 并且正在使用border-spacing 在它们之间放置空间。如果我使用<div class="button"> 之类的东西,它工作得很好,但是一旦我使用<button> 元素,中间空间就会消失。
JSFiddle:http://jsfiddle.net/uASbb/
现在,使用<div> 现在就可以了(如果在语义上不准确的话),所以我很想知道是否有人知道这里到底发生了什么。
注意:我还注意到在相同情况下使用 <input> 元素时会出现一些(不同的)奇怪行为:http://jsfiddle.net/G5SFX/1/
在这些情况下不支持display: table-cell 吗?这是一个错误吗?
谢谢!
编辑:您似乎无法将display: table-cell 应用于按钮;它只是默认回到inline-block。请参阅 Chrome WebInspector 的此屏幕截图:
现在问题仍然存在:这是故意的吗?是规范还是只是浏览器?可以改吗?
【问题讨论】:
-
有趣...而且没有必要拥有
width:50%,但使用按钮也不起作用。比较:jsfiddle.net/uASbb/1 -
我不知道它是否是标签“按钮”的错误,但如果在 firebug 的“DOM”中看到,我们会得到下一个:对于标签“按钮”offsetLeft = 0,对于标签“div” offsetLeft = 15...
-
不是一个很好的解决方案,但需要考虑的是在按钮内嵌套一个 div 或 span。
-
是的,我最终做的是有一个外部
<div>来处理间距和一个内部<button>在语义上是正确的。它不像我想要的那样优雅,但是,这就是网页设计。 -
在使用 Opera 12 时效果很好(但在 Firefox 的 Chromium 中不行),所以我猜这是某种浏览器错误。但另一方面——你真的需要将按钮格式化为表格单元格吗?浮点数或
display: inline-block;怎么样?
标签: html css button input css-tables