显示:表单元格,边框间距不与按钮的作用?(display: table-cell, border-s

2019-06-28 09:19发布

所以,我使用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这个截图:


现在的问题是:这是故意的吗? 它是规范还是仅仅是浏览器? 我们能否把它改变?

Answer 1:

插入button元素转换成div是一个很好的解决方案(在你的地方我会选择它,太),但如果你想显示两个button之间没有从帮助与空间侧元件侧div你可以试试这个您.item类:

.item {
    display: table-cell;
    width: 46%;
    background: aliceBlue;
    border: 1px solid black;
    margin: 1%;
}

Width被减少到46%以允许一个margin1%每围绕button元件。 你现在有它们之间的空间,并且如果您调整窗口大小的第二个button元素不会在第一个倒下。

例如: http://jsfiddle.net/codenighter/H7TZU/

希望能帮助到你。

编辑:看来, border-spacing (其实都不block造型工作)不工作的buttoninput 。 但它确实正在与像其他内联元素spanh1b 。 因此,对于inputbuttondisplay: table-cell属性不能正确地应用(我已经改变了width值用于buttoninput的,它显示,而对于spanbwidth在50%实际上依然)。

例子: http://jsfiddle.net/codenighter/HrTZS/



文章来源: display: table-cell, border-spacing don't work with buttons?