如果我理解正确:
- 您需要一份清单。
- 您希望每个列表项的宽度相同。
您希望该宽度是最宽列表项内容的宽度
您还需要一种在容器中均匀分布列表项的方法,
这似乎与 3 不兼容,因为那样它们将不会按内容均匀间隔,而是按容器大小。
所以我假设您需要两种不同的解决方案。
我觉得你可以的
<style>
ul, li{float:left;margin;padding:0;display:block;}
li {clear:left;width:100%;margin:1px 0;background:#03a;}
</style>
<ul>
<li>Item 1</li>
<li>Item 2 which is longer</li>
<li>Item 3</li>
</ul>
适用于某些浏览器。我似乎记得它不能在 IE 中工作,并且必须使用 css 表达式使其工作。
这个想法是浮动 ul 和 li 以将它们缩小到它们的内容宽度。
li 被清除并设置为其容器宽度的 100%,即缩小到其大小的同一容器。
--
除非您知道列表项的数量,否则您的其他选择在 CSS 中是不可能的。
虽然如果您不知道列表项的数量,则意味着服务器端或客户端都有脚本,您可以找出项目的数量。 :)
我过去通过给 ul 一个包含子级数量的类,并使用大量 CSS 规则并希望能坚持下去,解决了这个问题。
例如
<style>
ul.lis1 li {width:100%}
ul.lis2 li {width:50%}
ul.lis3 li {width:33.3%}
ul.lis4 li {width:25%}
/* ... you can keep going forever here, though there'll be a point at which they become too thin and your UI breaks anyway, */
</style>
<ul class="lis4"> <!-- lis4 is generated by PHP or Ruby or whatever -->
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
</ul>