浮动项目的多行水平居中列表

Posted

技术标签:

【中文标题】浮动项目的多行水平居中列表【英文标题】:Multi-row horizontally centered list of floated items 【发布时间】:2012-02-27 11:44:56 【问题描述】:

我有一个动态生成的菜单,它位于可调整大小的容器中。我必须遵守 4 个要求:

    项目必须形成水平居中的菜单。 它们必须包装成 n 行并保持对齐。 必须是<ul></ul> 列表。 必须支持 IE7+

例子:

>          Item 1 | Item 2 | Item 3 | Item 4 | Item 5 | Item 6 | Item 7         <

现在,当容器缩小时,items 必须形成以下形式:

                  > Item 1 | Item 2 | Item 3 | Item 4  <
                  >     | Item 5 | Item 6 | Item 7     <

&lt;&gt; 符号表示容器边界。

我将如何在 html/CSS 中做到这一点?提前致谢。

编辑

我忘了说我必须使用&lt;ul&gt; 并使其在 IE7+ 下工作。

【问题讨论】:

【参考方案1】:

HTML:

<ul id="container">
    <li class="item">Item1</li>
    <li class="item">Item2</li>
    <li class="item">Item3</li>
    <li class="item">Item4</li>
    <li class="item">Item5</li>
    <li class="item">Item6</li>
    <li class="item">Item7</li>
</ul>

CSS:

#container 
    text-align: center;
    padding: 10px;


.item 
    display: inline-block;
    margin: 0 8px;
    /* for ie7 */
    zoom: 1;
    *display: inline;

小提琴:http://jsfiddle.net/eqpGv/2/

【讨论】:

谢谢!但我忘了说,它必须是一个 ul 列表。 容器真的没关系,css也一样,不过我更新了代码和fiddle变成了无序列表。 为新的 ie7 要求添加了骇客。【参考方案2】:

@亚历山大

只需将 div 的宽度设置为您喜欢的最大尺寸,将样式“text-align”应用于 div 类并将其设置为“center”,因为您的 shell div 垂直增长,项目将环绕并居中对齐。

【讨论】:

孩子&lt;li&gt;物品呢?他们必须是什么显示类型,内联?我也必须让它在 IE 7 中工作。我忘了提一下,这个列表必须是&lt;ul&gt;。我会进行编辑。

以上是关于浮动项目的多行水平居中列表的主要内容,如果未能解决你的问题,请参考以下文章

无序列表中多行列表项的水平居中

居中(水平+垂直,浮动+定位,定宽+不定宽)

如何让一个浮动元素既水平又垂直居中

浮动元素如何水平居中

总结一下各种居中(内联元素块级元素浮动元素绝对定位元素)*(水平垂直)

css基础 CSS 布局 – OverflowFloat 浮动CSS 布局 – 水平 垂直居中对齐