使用 table-布局自动嵌套 table,当 window 太小时宽度 100% 溢出
Make nested table with table-layout auto, width 100% overflow when window too small
我有一个 table 和 table-layout: auto
,我想给它一个 100% 的宽度,但我希望它在 window 宽度低于最小值时水平溢出space 需要完整显示其内容,而不会导致显示 window 水平滚动条。
查看这些示例:
示例 1(有效)
<div style="width: 100%; overflow-x: auto">
<table style="table-layout: auto; width: 100%; overflow-x:auto; border: 1px solid black">
<tr>
<td>dcsdcsdcasd1</td>
<td>dcsdcsdd2</td>
<td>dcsdcsdasxascasd3</td>
<td>dcsdcsdasd4</td>
<td>dcsdcsdxasacasd5</td>
<td>dcsdcsdcxasd6</td>
<td>dcsdcsxaxasdcasd7</td>
<td>dcsdasd8</td>
<td>dcsdd9</td>
<td>dcsdxaxasxascsdcasd10</td>
</tr>
</table>
</div>
示例 2(不工作)
<table>
<tr>
<td>
<div style="width: 100%; overflow-x: auto">
<table style="table-layout: auto; width: 100%; overflow-x:auto; border: 1px solid black">
<tr>
<td>dcsdcsdcasd1</td>
<td>dcsdcsdd2</td>
<td>dcsdcsdasxascasd3</td>
<td>dcsdcsdasd4</td>
<td>dcsdcsdxasacasd5</td>
<td>dcsdcsdcxasd6</td>
<td>dcsdcsxaxasdcasd7</td>
<td>dcsdasd8</td>
<td>dcsdd9</td>
<td>dcsdxaxasxascsdcasd10</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
当 window 调整大小并低于完全显示内容所需的宽度时,示例 2 中的内部 table 宽度保持固定,并显示整个 window。这不会发生在示例 1 中,结果恰好是所需的结果。问题在于示例 2 中的包装 table。但是,在我需要完成这项工作的实际项目中,我将 table 包装在我的 HTML 代码中,并且我无法删除它。无论如何,我不明白为什么包装 table 应该在这方面有所作为。
有什么建议可以使它按预期工作,即使存在外部 table?
在第二个示例中,您的外部 table 仍会根据其内容的需求增长 - 这就是为什么您要为整个文档设置滚动条的原因。
您需要首先限制 table 的宽度,width: 100%; table-layout: fixed;
- 这样当内部 table 变宽时它就会溢出。
我有一个 table 和 table-layout: auto
,我想给它一个 100% 的宽度,但我希望它在 window 宽度低于最小值时水平溢出space 需要完整显示其内容,而不会导致显示 window 水平滚动条。
查看这些示例:
示例 1(有效)
<div style="width: 100%; overflow-x: auto">
<table style="table-layout: auto; width: 100%; overflow-x:auto; border: 1px solid black">
<tr>
<td>dcsdcsdcasd1</td>
<td>dcsdcsdd2</td>
<td>dcsdcsdasxascasd3</td>
<td>dcsdcsdasd4</td>
<td>dcsdcsdxasacasd5</td>
<td>dcsdcsdcxasd6</td>
<td>dcsdcsxaxasdcasd7</td>
<td>dcsdasd8</td>
<td>dcsdd9</td>
<td>dcsdxaxasxascsdcasd10</td>
</tr>
</table>
</div>
示例 2(不工作)
<table>
<tr>
<td>
<div style="width: 100%; overflow-x: auto">
<table style="table-layout: auto; width: 100%; overflow-x:auto; border: 1px solid black">
<tr>
<td>dcsdcsdcasd1</td>
<td>dcsdcsdd2</td>
<td>dcsdcsdasxascasd3</td>
<td>dcsdcsdasd4</td>
<td>dcsdcsdxasacasd5</td>
<td>dcsdcsdcxasd6</td>
<td>dcsdcsxaxasdcasd7</td>
<td>dcsdasd8</td>
<td>dcsdd9</td>
<td>dcsdxaxasxascsdcasd10</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
当 window 调整大小并低于完全显示内容所需的宽度时,示例 2 中的内部 table 宽度保持固定,并显示整个 window。这不会发生在示例 1 中,结果恰好是所需的结果。问题在于示例 2 中的包装 table。但是,在我需要完成这项工作的实际项目中,我将 table 包装在我的 HTML 代码中,并且我无法删除它。无论如何,我不明白为什么包装 table 应该在这方面有所作为。
有什么建议可以使它按预期工作,即使存在外部 table?
在第二个示例中,您的外部 table 仍会根据其内容的需求增长 - 这就是为什么您要为整个文档设置滚动条的原因。
您需要首先限制 table 的宽度,width: 100%; table-layout: fixed;
- 这样当内部 table 变宽时它就会溢出。