我有一個水平菜單欄,可以有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