-6ren">
gpt4 book ai didi

html - 浏览器忽略表格布局 :fixed

转载 作者:太空宇宙 更新时间:2023-11-04 03:18:48 25 4
gpt4 key购买 nike

我无法实现固定的表格布局。如果表格单元格的内容多于容纳不下的内容,表格将重新布局,就像表格布局设置为自动一样。这是HTML代码

<!DOCTYPE html>
<html>
<head>
<title>Table test</title>
<meta charset="UTF-8" />
<link rel="stylesheet" type="text/css" href="<path here>" />
</head>
<body>
<table>
<thead>
<tr>
<th class="number">Number</th>
<th class="name">Name</th>
<th class="type">Type</th>
<th class="comment">Comment</th>
<th class="buttons"></th>
</tr>
</thead>
<tbody>
<tr>
<td>42</td>
<td>This name is really long and is supposed to be truncated</td>
<td>Normal</td>
<td>I don't know what to say</td>
<td><button>Edit...</button></td>
</tr>
</tbody>
</table>
</body>
</html>

CSS 是

table {
border-collapse: collapse;
table-layout: fixed;
}

th {
font-weight: bold;
text-align: left;
}

td {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}

tr {
border-top: 1px solid #000000;
border-bottom: 1px solid #000000;
}

th.number {
width: 6rem;
}

th.name {
width: 15rem;
}

th.type {
width: 17rem;
}

th.comment {
width: 15rem;
}

th.buttons {
width: 17rem;
}

这是一个fiddle .问题是第二列(“名称”)会增加,直到内容适合为止。我做错了什么?

最佳答案

您需要在table 元素上设置width,因为Fixed table layout 的定义说:“表格的宽度可以用'width'属性明确指定。 “auto”值(对于“display: table”和“display: inline-table”)意味着使用自动表格布局算法。但是,如果表是正常流程中的 block 级表('display: table'),UA 可以(但不必)使用 10.3.3 的算法来计算宽度并应用固定表布局,即使指定的宽度是‘自动’。” (请注意,auto 是默认值。)

这很尴尬,但要获得固定布局,您需要添加

table { width: calc(40rem + 10px); }

这里 40rem 是您为列设置的宽度的总和,10px 容纳单元格中的默认填充(1px每个单元格中的左侧和右侧)。

旧版浏览器不支持 calc 结构,但您已经在使用 rem 单元冒险了。

关于html - 浏览器忽略表格布局 :fixed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28266782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com