1

昨天一位朋友向我展示了他在课堂上遇到的一个奇怪问题。他无法制作金字塔状的表格(如下面的 jsfiddle 链接所示)。
我从来没有真正处理过 html 表格,但我认为这只是他们使用的程序很愚蠢。但是当我自己尝试为它编写 html 时,我发现它不止于此......

这就是我正在尝试的:http: //jsfiddle.net/5aDkL/

<table border="1">
    <tr>
        <td colspan="1">A</td>
        <td colspan="1">B</td>
        <td colspan="2">C</td>
        <td colspan="1">D</td>
        <td colspan="1">E</td>
    </tr>
    <tr>
        <td colspan="1">F</td>
        <td colspan="2">G</td>
        <td colspan="2">H</td>
        <td colspan="1">I</td>
    </tr>
        <tr>
        <td colspan="2">J</td>
        <td colspan="2">K</td>
        <td colspan="2">L</td>
    </tr>
</table>

如您所见,该表与您预期的完全不同(除非您已经知道这一点)。
因此,经过一些网络搜索,我想出了以下内容,效果很好(只有一行 css):http: //jsfiddle.net/SzWHX/

<table border="1">
    <col>
    <col>
    <col>
    <col>
    <col>
    <col>
    <tr>
        <td colspan="1">A</td>
        <td colspan="1">B</td>
        <td colspan="2">C</td>
        <td colspan="1">D</td>
        <td colspan="1">E</td>
    </tr>
    <tr>
        <td colspan="1">F</td>
        <td colspan="2">G</td>
        <td colspan="2">H</td>
        <td colspan="1">I</td>
    </tr>
        <tr>
        <td colspan="2">J</td>
        <td colspan="2">K</td>
        <td colspan="2">L</td>
    </tr>
</table>

但我想知道,有没有更好的编码方式?我的意思是,那些空的 col 元素在那里看起来很傻,对吧?
因此,如果有人能启发我,那将不胜感激。

4

2 回答 2

2

那个“金字塔”看起来真的很丑:

OP的金字塔

当您查看没有边框的表格时尤其明显:

OP的无国界金字塔

不是更好的折衷方案是添加必要的空 ( &nbsp;) 单元格以使间距正确吗?我将所有列的宽度设置为 20px,col如果需要,您可以使用 css 执行此操作,而无需在下面的示例中使用。

带有额外空单元格的金字塔

带有额外空单元格且无边界的金字塔

最后一个比较:

在此处输入图像描述

于 2014-07-16T15:51:20.250 回答
1

目前没有更简单的方法。col这是真正需要元素(用于预期样式)的情况的一个很好的例子。原因是,否则无法引用 CSS 中的第 3 列和第 4 列,因为没有表格单元格只占用该列中的一个槽。

理论上,:nth-column()伪类可以让我们在没有col元素的情况下进行样式设置,但它确实在进行中,正在计划中(CSS 选择器级别 4)。

于 2013-10-11T12:43:29.157 回答