html - 如何使 HTML 表格(在固定宽度的 div 中)适应其单元格而不是容器的宽度?

标签 html width html-table

我想让下表适应单元格的宽度,而不是其容器:

<div style='width: 700px; border: 1px solid red;'>
    <table border="1" style='table-layout: fixed;'><tbody>
        <tr>
            <th style="" colspan="3">Group 1</th>
            <th style="" colspan="5">Group 2</th>
            <th style="" colspan="4">Group 3</th>
        </tr>
        <tr>
            <th style="width: 62px;">A</th>
            <th style="width: 200px;">B</th>
            <th style="width: 62px;">C</th>
            <th style="width: 62px;">D</th>
            <th style="width: 62px;">E</th>
            <th style="width: 62px;">F</th>
            <th style="width: 62px;">G</th>
            <th style="width: 62px;">H</th>
            <th style="width: 62px;">I</th>
            <th style="width: 100px;">J</th>
            <th style="width: 62px;">K</th>
            <th style="width: 68px;">L</th>
        </tr>
    </tbody></table>
</div>

容器的宽度比单元格宽度的总和窄。可以在此处显示水平滚动条,但表格不能比其容器宽。如果我计算 colspan 和表格的总宽度,它可以完成这项工作,但是如果单元格具有非 px 宽度(例如“%”或“em”)怎么办?那么静态px计算就无法进行。

当前效果是: enter image description here 预期的效果是表格的宽度超过容器 div 的宽度。

但是直接为表格设置宽度也有问题:为单元格设置的宽度将被忽略。例如:

    <div style='width: 700px; border: 1px solid red;'>
    <table border="1" style='table-layout: fixed; width: 900px;'><tbody>
        <tr>
            <th style="" colspan="3">Group 1</th>
            <th style="" colspan="5">Group 2</th>
            <th style="" colspan="4">Group 3</th>
        </tr>
        <tr>
            <th style="width: 62px;">A</th>
            <th style="width: 200px;">B</th>
            <th style="width: 62px;">C</th>
            <th style="width: 62px;">D</th>
            <th style="width: 62px;">E</th>
            <th style="width: 62px;">F</th>
            <th style="width: 62px;">G</th>
            <th style="width: 62px;">H</th>
            <th style="width: 62px;">I</th>
            <th style="width: 100px;">J</th>
            <th style="width: 62px;">K</th>
            <th style="width: 68px;">L</th>
        </tr>
    </tbody></table>
</div>

效果是: enter image description here 请注意,第二个单元格(应为 200 像素)与第一个和第三个单元格一样窄。

有人可以解释一下这个问题吗?提前致谢。

最佳答案

添加CSS:

th{
    min-width:50px; /*for instance*/
}
div{
    overflow-x:scroll;
}

并删除style='table-layout:fixed;宽度:1px;' 来自表格

关于html - 如何使 HTML 表格(在固定宽度的 div 中)适应其单元格而不是容器的宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15237982/

相关文章:

javascript - 如何在 JavaScript 中访问 anchor 标记?

html - 表填充顶部

javascript - 如何垂直对齐div文本?

javascript - 在 javascript 中从 JSON 生成 HTML 表

javascript - 显示/隐藏 div 的选择/事件类

Css 移动版(宽度问题)

jquery - 获取隐藏图像的高度

javascript - 为什么在 chrome 中刷新页面时 width 的值设置为零?

html - 两张 table 并排

javascript - 使用 HTML 和 Javascript 使用 4 个单选按钮显示和隐藏输入字段