【发布时间】:2013-06-12 15:53:06
【问题描述】:
好的,这实际上有点复杂。
我有一个导航列表,其中列表项设置为inline-block。 列表的项目数是动态的,因此可能会有所不同。
我的目标是让列表项跨越容器的整个宽度。 (例如,如果有 4 个列表项,每个项将占用容器宽度的 25% [忽略边距/填充等])
浏览器似乎会在它们之间有空格(换行符/空格等)的内联块元素中添加 4px 边距,这增加了复杂性。
我以小提琴作为起点,其中有 2 个示例:第一个只是内联块模式下的列表项,第二个证明它们跨越宽度。
两者都没有达到我想要的,即整个宽度都被元素占据而不会中断到另一行。
编辑:稍微分开,但为什么在我的第二个示例中,lis 下方有一个空格,尽管我已将 line-height 和 font-size 设置为 0?
【问题讨论】:
-
你愿意为列表项设置一个固定的高度吗?
-
是的,我是。 (由于需要最少字符而令人费解的回复)
-
display:table-cell成功了:stackoverflow.com/a/10526275/27862 -
认为这样做可以,但我需要添加 -4px 修复程序才能使其正常工作:jsfiddle.net/4K4cU/7
-
请注意,-4px 修复会产生与删除
li标记之间的空白相同的基本问题,但相反。布局将依赖于标签之间的总是有空格,而不是从来没有它(这两种情况都违反了内容和表示的分离,产生了困难-如果源代码的格式稍后发生更改,则识别错误)。如果可以的话,改为safer to float them。
标签: css