具有可变宽度列的固定宽度表

时间:2013-08-22 15:00:19

标签: css css-tables

我需要一个固定宽度的表,其中的列具有可变宽度,因此取决于它们的内容,但这些内容之间的水平距离是相同的。

这就是我得到的:

-----------------Table Width-----------------
|----Long Content----|---Content---|--More--|

这就是我想要的:

----------------Table Width------------------
|---Long Content---|---Content---|---More---|

请注意内容单元格中减号的计数!当您使用屏幕截图测量列内容之间的空格时,您会注意到它们并不总是完全相同。

这是我的标记:

<ul>
    <li>Long Content</li>
    <li>Content</li>
    <li>More</li>
</ul>

这是我的工作表样式:

ul {
    display: table;
    width: 600px;
}

li {
    display: table-cell;
    text-align: center;
    border: solid 1px #000;
}

这是我的jsFiddle:http://jsfiddle.net/ATwqk/12/。我怎样才能得到理想的结果?

3 个答案:

答案 0 :(得分:0)

您需要将左右填充属性设置为2.5em。但是,只有在没有中断或每个单元格都破坏其内容的情况下,这才有效。

ul {
    display: table;
    width: 300px;
}

li {
    display: table-cell;
    text-align: center;
    border: solid 1px #000;
    padding: 0 2.5em;
}

答案 1 :(得分:0)

如果我理解正确,你可以尝试在ul周围包裹div固定宽度。然后宽度:100%;在ul和宽度:li的50%

http://jsfiddle.net/ATwqk/3/

#wrapper{
        width:500px;
    }
    ul {
        display: table;
        width: 100%;
    }

    li {
        display: table-cell;
        text-align: center;
        border: solid 1px #000;
        width:50%
    }

<div id="wrapper">
<ul>
    <li>Long Contentdsdddddddddddd</li>
    <li>Content</li>
</ul>
</div>

答案 2 :(得分:0)

在ul标签上试试这个。这应该完全符合你的要求。

ul
{
    display: flex;
    justify-content: space-between;
    width: 600px;
}

更新了jsfiddle:

http://jsfiddle.net/ATwqk/19/