如何在HTML5 / css3中水平放置水平行的“表格”中?

罗兰多

我有使用html表,tr,td标签的下表。 在此处输入图片说明

一切都很好,但是我使用的是角形,问题是如果我有更多的行,则没有垂直的空间。相反,我想在其右侧“溢出”,使其看起来像:

在此处输入图片说明

使用HTML5 / CSS的最佳方法是什么,这样我可以使内容超出表的范围而溢出?请注意,在某些情况下,我可能会有2或3个条目,所以我希望不必在一开始就使宽度变成正常尺寸的两倍,而是根据我拥有的条目数来调整表的大小。在桌子上。没有滚动条。

我觉得HTML中的表格标签是有限制的,可能不允许我这样做。做这个的最好方式是什么?使用div?

<table style="background:green;">
<tr><td>Name</td><td>Sport</td><td>Score</td></tr>
<tr><td>Jordan</td><td>Soccer</td><td>50</td></tr>
<tr><td>Jordan</td><td>Soccer</td><td>50</td></tr>
<tr><td>Jordan</td><td>Soccer</td><td>50</td></tr>
</table>

尝试使用flexbox方法,但似乎如果将flexbox放在div中,则一旦条目超出第一列,背景似乎无法正确填充:

https://jsfiddle.net/t0h7w2hw/

Abhitalks

一切都很好,但是我使用的是角形,问题是如果我有更多的行,则没有垂直的空间。

角度与这有什么关系?

[..]如果我有更多行,则没有垂直的空间。相反,我想“溢出”到它的右边

表格尤其不会为您提供这种灵活性,您将无法将行的高度和流控制为列。

[..]以便可以使内容超出表内容时溢出?请注意,在某些情况下,我可能会有2或3个条目,所以我希望不必在一开始就使宽度变成正常尺寸的两倍,而是根据我拥有的条目数来调整表的大小。在桌子上。

一种简单快捷的方法是将行拆分为自己的表。如果您可以拥有该结构,则只需使用CSS即可columns

通常,您将所有这些表都包装在div具有其height约束的内。column-*在包装上设置属性,div然后就可以了。你可以玩的column-gapcolumn-rulecolumn-span,和column-fill属性来美化整个啄。

还要注意,您将需要break-inside: avoid在表格上使用以避免它们在流向下一列时中途中断。

示例片段:

#rowflow {
  height: 120px; max-height: 120px;
  border: 1px solid #d33; overflow: hidden;
  column-width: 200px; column-gap-width: 0px; column-fill: auto;
  column-rule: 1px solid #bbb; 
}
table { 
  font-family: sans-serif; margin-bottom: 2px;
  table-layout: fixed; width: 190px; 
}
table:first-child { column-span: all; }
table, th, td { border-collapse: collapse; border: 0px solid gray; padding: 6px; }
table, tr { break-inside: avoid; }
th, td { text-align: left; }
th:last-child, td:last-child { text-align: right; }
<div id="rowflow">
  <table><tr><th>Name</th><th>Sport</th><th>Score</th></tr></table>
  <table><tr><td>Jordan</td><td>Soccer</td><td>50</td></tr></table>
  <table><tr><td>Jordan</td><td>Soccer</td><td>50</td></tr></table>
  <table><tr><td>Jordan</td><td>Soccer</td><td>50</td></tr></table>
  <table><tr><td>Jordan</td><td>Soccer</td><td>50</td></tr></table>
  <table><tr><td>Jordan</td><td>Soccer</td><td>50</td></tr></table>
</div>


在上面的代码段中,包装div是受高度限制的,您可以看到列在流动。

使用此小提琴尝试更改窗口大小并查看效果。

[..]因此,我希望不必在一开始就使宽度变成普通尺寸的两倍,而是根据我在表中的条目数来调整表的大小。没有滚动条。

包装div将自行全角。但是,您可以旋转overflow以控制如何处理溢出。根据内容的宽度动态更改宽度完全是一个完全不同的局面,您需要使用JavaScript,而且会变得混乱。

注意:为了使上面的示例起作用,您将需要固定表格的宽度,以使列整齐地对齐。您可能会使用table-layout: fixed固定的布局。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章