html - 在表头中使用 flex 的正确方法是什么?
问题描述
在下表中,我要求在标签中查看它们的内容
table {
width: 100%;
border-collapse: collapse;
}
th,
td {
text-align: left;
padding: 10px;
border: 1px solid #ddd;
}
<table>
<thead>
<tr>
<th><span>Col 1</span>^</th>
<th><span>Col 2</span>^</th>
<th><span>Col 3</span>^</th>
<th><span>Col 4</span>^</th>
</tr>
</thead>
<tbody>
<tr>
<td>Item 1</td>
<td>Item 2</td>
<td>Item 3</td>
<td>Item 4</td>
</tr>
<tr>
<td>Item 1</td>
<td>Item 2</td>
<td>Item 3</td>
<td>Item 4</td>
</tr>
<tr>
<td>Item 1</td>
<td>Item 2</td>
<td>Item 3</td>
<td>Item 4</td>
</tr>
<tr>
<td>Item 1</td>
<td>Item 2</td>
<td>Item 3</td>
<td>Item 4</td>
</tr>
<tr>
<td>Item 1</td>
<td>Item 2</td>
<td>Item 3</td>
<td>Item 4</td>
</tr>
</tbody>
</table>
尝试使用 flex 执行此操作时,出现意外行为
table {
width: 100%;
border-collapse: collapse;
}
th,
td {
text-align: left;
padding: 10px;
border: 1px solid #ddd;
}
/* here is the change */
th {
display: flex;
justify-content: space-between;
}
<table>
<thead>
<tr>
<th><span>Column 1</span>^</th>
<th><span>Column 2</span>^</th>
<th><span>Column 3</span>^</th>
<th><span>Column 4</span>^</th>
</tr>
</thead>
<tbody>
<tr>
<td>Item 1</td>
<td>Item 2</td>
<td>Item 3</td>
<td>Item 4</td>
</tr>
<tr>
<td>Item 1</td>
<td>Item 2</td>
<td>Item 3</td>
<td>Item 4</td>
</tr>
<tr>
<td>Item 1</td>
<td>Item 2</td>
<td>Item 3</td>
<td>Item 4</td>
</tr>
<tr>
<td>Item 1</td>
<td>Item 2</td>
<td>Item 3</td>
<td>Item 4</td>
</tr>
<tr>
<td>Item 1</td>
<td>Item 2</td>
<td>Item 3</td>
<td>Item 4</td>
</tr>
</tbody>
</table>
获得了预期的结果,但标题失去了位置
在表头中使用 flex 的正确方法是什么?
解决方案
给予thdisplay:flex
将使其失去其表结构,因为默认情况下所有th都如此变化,不推荐display: table-cell;
这就是你的意思?
table {
width: 100%;
border-collapse: collapse;
}
th,
td {
text-align: left;
padding: 10px;
border: 1px solid #ddd;
}
.d-flex{display:flex;}
.ml-auto{margin-left:auto;}
<table>
<thead>
<tr>
<th>
<div class="d-flex">Column 1
<div class="ml-auto">^</div>
</div>
</th>
<th>
<div class="d-flex">Column 1
<div class="ml-auto">^</div>
</div>
</th>
<th>
<div class="d-flex">Column 1
<div class="ml-auto">^</div>
</div>
</th>
<th>
<div class="d-flex">Column 1
<div class="ml-auto">^</div>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>Item 1</td>
<td>Item 2</td>
<td>Item 3</td>
<td>Item 4</td>
</tr>
<tr>
<td>Item 1</td>
<td>Item 2</td>
<td>Item 3</td>
<td>Item 4</td>
</tr>
<tr>
<td>Item 1</td>
<td>Item 2</td>
<td>Item 3</td>
<td>Item 4</td>
</tr>
<tr>
<td>Item 1</td>
<td>Item 2</td>
<td>Item 3</td>
<td>Item 4</td>
</tr>
<tr>
<td>Item 1</td>
<td>Item 2</td>
<td>Item 3</td>
<td>Item 4</td>
</tr>
</tbody>
</table>
推荐阅读
- xml - 使 XML 漂亮
- bash - 根据 bash 第一列中的组数和最大行数拆分文件
- c++ - 如何在 c++ 中覆盖 CC_SYNTHESIZE 中的参数?
- reactjs - 在 `next/image` 上出现错误 Invalid src prop ('here is a link'),主机名“localhost”未在 `next.config.js` 中的图像下配置
- struct - `==` 是否在 Julia 中递归检查结构?好像没有
- python - 在 Flask 中重定向时更改发布请求的值
- mysql - 如何使用 Laravel 和 mysql 计算表中具有不同日期和时间列的多行的总时间
- python - Pandas 在给定值列表的情况下查找数据框列中最接近值的索引
- r - 在 uniqueN 函数之后更改列的名称
- android - 截屏 Dialog 内的整个 ScrollView 内容