您可以使用display: table
(和table-cell
和,至少爲Firefox,table-row
)與table-layout: fixed
得到其中由筆者表示寬度表算法(你)是由瀏覽器應用,而不是其他方式在瀏覽器中做它最適合單元格寬度適應其內容。
然後將50px的寬度應用於除最後一個之外的所有「單元格」。
我對ul
和table
使用table-row
其nav
家長因爲對外匯18設置在ul
display: table
沒有預期的效果(與具有又名中充當排陰影元素創建缺少的部分瀏覽器的東西-之間)。 非常具有描述性(這個元素必須被渲染爲一個表格,這個作爲一個行,這些元素作爲單元格)會有所幫助。
小提琴這裏:http://jsfiddle.net/X6UX9/1/
HTML:
<nav>
<ul>
<li> //width = 50px</li>
<li>//width = 50px</li>
<li class="last">//width (...) 300px</li>
</ul>
</nav>
CSS:
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
nav {
display: table;
table-layout: fixed;
width:400px;
height:50px;
}
nav > ul {
display: table-row;
}
nav li {
display: table-cell;
padding:5px;
outline: 1px dashed blue;
}
nav li:not(:last-child) {
width: 50px;
}
PS:使用:last-child
設置寬度與IE9 +,而不是IE8 +我兼容在小提琴中說...
編輯:oops我沒有看到你的.last
類最後li
。那麼,你有這個想法:)
edit2:更新提琴使用這個類,既不:not()
也:last-child
僞
將nav的總是400px寬?或者它會使用百分比? –
始終設置寬度。 –