我有一个水平菜单栏,可以有1到4个链接。CSS:表格单元格宽度声明被忽略
我希望每个链接的宽度不要取决于它们的数量(所以如果只有3个链接,菜单栏应该只有另外4个链接的75%)。
使用浮动到达目标,但是如果跨越两行的文本较长,无法相应地调整其他链接的高度,所以我使用display:table-cell
来解决此问题,但在3个链接的情况下,完全忽略width:25%
它呈现像宽度将是33%。
<div class="container">
<div class="block">
<a href="#">Link 1</a>
</div>
<div class="block">
<a href="#">Link 2</a>
</div>
<div class="block">
<a href="#">
Link 3 with very long text tha span across 2 rows
</a>
</div>
</div>
.container {
display: table;
width: 100%;
border:solid 1px blue;
}
.block {
border: 1px solid red;
display: table-cell;
width: 25%;
}
请看看这个jsFiddle为了看这两种情况。
期望的结果是第二个菜单栏链接继续具有与第一个菜单栏相同的宽度,而不是33%。
我也尝试添加table-layout:fixed
在其他线程读取,但是是无用
如何解决这个问题?
我不知道为什么,但你可以解决像这个演示的问题 - http://jsfiddle.net/bjf1fw8a/ – Anonymous 2014-10-09 08:12:51
你可以把一个空的块在最后:'
'或如果你想要缩短整个事物,可以将第二种情况下'container'的宽度减少到'75%'。但是,如果您的容器宽度保持在100%,并且只填充了三个元素,那么js应该如何知道如何处理额外空间?它将被填充到100%,不同元素之间的宽度比决定了它们的贡献。 – 2014-10-09 08:18:58根据需要,您应该在问题本身中包含足够的代码(HTML也一样)以重现问题。 – 2014-10-09 08:20:17