我正在尝试实现以下内容:
- 包含
div
的 -
table
没有width
集(可能为100%(,但它不需要宽度比包含div
-
table
的单元格是固定宽度(使用width
和/或max
/min
width
( -
table
单元格的width
比包含div
的宽度宽 -
table
中的tbody
元素需要水平滚动
table
元素这可能吗?在下面的代码段中,您可以看到我要实现的目标。容器的宽度为200px
。table
具有3列的100px
(总宽度为300px
(。您可以看到容器的背景是红色的,并且比table
宽度短。我的目标是使tbody
的宽度保持在容器的宽度(200px
(并水平滚动。
但是,我知道table
和tbody
元素的默认行为具有一些阻止这种情况发生的规则。有没有办法进行配置,以便tbody
将水平滚动溢出,而无需在tbody
元素中指定硬 width
?
.container-container {
background-color:#ccffcc;
}
.container {
background-color:#ffcccc;
width: 200px;
}
table {
border-collapse: collapse;
}
td {
width: 100px;
min-width: 100px;
background-color: #e0e0e0;
}
tbody {
display: block;
margin-top: 29px;
width:100%;
overflow: auto;
}
<div class="container">
<table id="callLogExplorer">
<tbody>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
</tbody>
</table>
</div>
不要在tbody
上设置display:block
。只需将您的溢出放在<table>
父母上,就像Twitter Bootstrap这样做。它可以使用跨浏览器/跨设备:
.tableResponsive {
background-color:#ffcccc;
overflow-x: auto;
width: 200px; /* or set max-width on it max-width: 100vw; */
}
#callLogExplorer {
margin-top: 29px;
}
table {
border-collapse: collapse;
}
td {
min-width: 100px;
background-color: #e0e0e0;
}
<div class="tableResponsive">
<table id="callLogExplorer">
<tbody>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
<tr>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
<td>asdfasd fas</td>
</tr>
</tbody>
</table>
</div>