html - 如何将表格行溢出到第二列?
问题描述
我有一个包含数百个短行的表格,我想在列中显示这些行,而不是在彼此下方显示,如下所示:
我知道我可以创建两个表并对齐它们,但我更希望它是一个用于可访问性目的的单个表,所以上面的 HTML 将类似于:
<table>
<thead>
<tr><th>Col 1</th><th>Col 2</th></tr>
</thead>
<tbody>
<tr><td>Row 1 Col 1</td><td>Row 1 Col 2</td></tr>
<tr><td>Row 2 Col 1</td><td>Row 2 Col 2</td></tr>
<tr><td>Row 3 Col 1</td><td>Row 3 Col 2</td></tr>
<tr><td>Row 4 Col 1</td><td>Row 4 Col 2</td></tr>
</tbody>
</table>
我设法得到的最接近的方法是添加多个 tbody 元素并将它们与 flexbox 对齐(见下文),但这有一个缺点,即标题和标题将无法正确显示:
我可以用一些 HTML/CSS-fu 来解决这个问题,或者通过删除 thead 并将标题元素插入到 tbody 内(没有 thead),但它看起来相当难看。
有没有更直接的方法来生成这样的多列表?我真的没有在HTML 规范中看到任何明显的东西。
<style>
table { border-collapse: collapse; }
td { border: 1px solid #000; }
table { display: flex; justify-content: flex-start; }
tbody { margin-right: 1em; }
</style>
<table>
<caption>Table test</caption>
<thead>
<tr><th>Col 1</th><th>Col 2</th></tr>
</thead>
<tbody>
<tr><td>Row 1 Col 1</td><td>Row 1 Col 2</td></tr>
<tr><td>Row 2 Col 1</td><td>Row 2 Col 2</td></tr>
</tbody>
<tbody>
<tr><td>Row 3 Col 1</td><td>Row 3 Col 2</td></tr>
<tr><td>Row 4 Col 1</td><td>Row 4 Col 2</td></tr>
</tbody>
</table>
解决方案
编辑: 使用尽可能多的 HTML 完成重写。也删除了最后一个答案。
此版本将动态缩放以适应页面,但您需要让 CSS 知道您希望它更改的屏幕尺寸。当前设置为520px
.
您需要将代码复制并粘贴到测试页面并调整窗口大小以查看动态大小。
table {
width:100%;
max-width:520px;
text-align:center;
}
.tWide {
display:none;
}
@media all and (min-width:520px) {
thead tr, .tWide {
display:inline-block;
width:46%;
}
thead tr th {
display:inline-block;
width:46%;
text-align:center;
}
tbody {
display:inline-block;
width:46%;
}
td, th { width:23%; }
}
<table>
<caption>Table test</caption>
<thead>
<tr><th>Col 1</th><th>Col 2</th></tr>
<tr class="tWide"><th>Col 1</th><th>Col 2</th></tr>
</thead>
<tbody>
<tr><td>Row 1 Col 1</td><td>Row 1 Col 2</td></tr>
<tr><td>Row 2 Col 1</td><td>Row 2 Col 2</td></tr>
</tbody>
<tbody>
<tr><td>Row 3 Col 1</td><td>Row 3 Col 2</td></tr>
<tr><td>Row 4 Col 1</td><td>Row 4 Col 2</td></tr>
</tbody>
</table>
推荐阅读
- jsp - 在 bucle 中按行分组两个不同名称的收音机?
- c - 与以前的定义错误混淆
- python - 在钩子 gitlab api 上推送事件
- ethereum - web3j - 带有字符串参数的事件的 TypeReference
- build - 下一个构建错误:连接 ECONNREFUSED 127.0.0.1:80
- c# - 我如何检测我的显卡是 C# 中的 CUDA 或光线追踪
- r - 如何在 RStudio 中应用频率权重(如 SPSS)?
- arrays - 未捕获的类型错误:三个__WEBPACK_IMPORTED_MODULE_2__.Float32Array 不是构造函数
- r - 使用特定值出现的次数将列添加到数据框:从 1、2 ... n 开始
- python - 重复并增加 Pandas 的列值