我想让一个按钮填充表格单元格,以使整个单元格都可单击。默认情况下,按钮具有自动宽度,因此我必须将其显式设置为100%宽度(display: block
不起作用)。但是这样做会使单元不再识别其自身的宽度。在Firefox中,使用以下命令将表嵌套在容器中时会出现问题overflow: scroll
:
在示例中可以看到,单元格中的文本从单元格中流出,并且单元格太小。所述的宽度可见宽度均等地在所有的细胞分布。在第二个示例中,我将按钮替换为div,但这并未显示问题:单元格正确获得了所需的宽度。第三个示例显示了更实际的用例,第二行使列变宽(这是按钮需要具有的原因width: 100%
)。
.wrapper {
width: 250px;
overflow-x: scroll;
background: indigo;
margin-bottom: 1em;
}
.table {
white-space: nowrap;
}
.table td {
background: lavender;
}
.table button {
font: inherit;
border: 0;
background: none;
padding: 0;
width: 100%;
}
<div class="wrapper">
<table class="table">
<tr>
<td><button>Some long table header A</button></td>
<td><button>Some long table header B</button></td>
<td><button>Some long table header C</button></td>
</tr>
</table>
</div>
<div class="wrapper">
<table class="table">
<tr>
<td><div>Some long table header A</div></td>
<td><div>Some long table header B</div></td>
<td><div>Some long table header C</div></td>
</tr>
</table>
</div>
<div class="wrapper">
<table class="table">
<tr>
<td><button>Table header A</button></td>
<td><button>Table header B</button></td>
<td><button>Table header C</button></td>
</tr>
<tr>
<td>Some long table content</td>
<td>Some long table content</td>
<td>Some long table content</td>
</tr>
</table>
</div>
您是否知道如何通过按钮使单元格达到所需宽度?现在,我的替代方法是使用div并向其中添加ARIA角色,因此它们的行为类似于按钮(但感觉有点脏)。
该问题没有出现在Chrome或Internet Explorer中,因此按钮中可能添加了一些与Firefox相关的样式。也许可以使用特定于浏览器的CSS属性将其禁用?
这似乎是Firefox中的错误。描述您问题的错误报告已提交到https://bugzilla.mozilla.org/show_bug.cgi?id=332171。
尽管在该错误报告中给出了以下事件,但似乎可以很快解决:
我认为我对错误823483的补丁将解决此问题(因为它们以一种方式(也就是最大宽度)扩展了怪癖,而以另一种方式(较少的帧类型)对其进行了限制;后者在这里很重要);只需完成它们(并弄清楚为什么我编写的测试未全部通过)...
David Baron在2016-01-06 21:12回复
暂时获得所需的行为,最简单的更改似乎是:
width: 100%;
为min-width: 100%;
开.table button
.wrapper {
width: 250px;
overflow-x: scroll;
background: indigo;
margin-bottom: 1em;
}
.table {
white-space: nowrap;
}
.table td {
background: lavender;
}
.table button {
font: inherit;
border: 0;
background: none;
padding: 0;
min-width: 100%;
}
<div class="wrapper">
<table class="table">
<tr>
<td><button>Some long table header A</button></td>
<td><button>Some long table header B</button></td>
<td><button>Some long table header C</button></td>
</tr>
</table>
</div>
<div class="wrapper">
<table class="table">
<tr>
<td><div>Some long table header A</div></td>
<td><div>Some long table header B</div></td>
<td><div>Some long table header C</div></td>
</tr>
</table>
</div>
<div class="wrapper">
<table class="table">
<tr>
<td><button>Table header A</button></td>
<td><button>Table header B</button></td>
<td><button>Table header C</button></td>
</tr>
<tr>
<td>Some long table content</td>
<td>Some long table content</td>
<td>Some long table content</td>
</tr>
</table>
</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句