【问题标题】:Centering Block Elements居中块元素
【发布时间】:2012-06-12 06:54:50
【问题描述】:

首先,我先说我无法控制 HTML,这就是 HTML 的样子:

<ul class="orbit-bullets">
  <li>1</li>
  <li>2</li>
</ul>

我要说明的第二点是,我不介意使用 inline-block,但我需要对不支持的浏览器进行后备。

我正在尝试使列表居中。列表项必须内联显示,但它们必须是块元素,因为我声明了宽度、高度和文本缩进。所以我知道我可以使用display:block; float:left;,但我希望元素居中。并且有时列表项是三个或四个或更多,所以我不想在小于 500px 的无序列表上设置固定宽度。如果我将宽度设置为 500 像素,当只有两个或三个列表项时,它们会显得非常偏离中心。

我需要在仍然使用display:block; float:left; 的同时将列表项本身在无序列表中居中。
或者有没有办法在无序列表上具有可变宽度同时仍然拥有它居中?我有任何建议。

谢谢。

【问题讨论】:

  • ul {display :block;margin :auto} 怎么样
  • @Sam 我需要声明宽度...
  • @Ateszki 我需要声明宽度...
  • 如果你设置一个固定的宽度和“ul”的自动边距,它会有所帮助。 “li”项目的居中文本。无法修改html,你想要的很难。
  • @Firula 我无法将&lt;li&gt; 元素的文本居中,因为它们向左浮动。

标签: css css-float html-lists block


【解决方案1】:

试试这个 - http://jsfiddle.net/jD6yp/

ul {
    width: 500px;
    text-align: center;
    background: beige;
}

li {
    display: inline-block;

    zoom: 1;          /* for old IE-s */
    *display: inline; /* for old IE-s */

    padding: 10px;
    margin: 20px;
    border: 1px solid pink;
}

【讨论】:

  • &lt;li&gt;s 必须是块元素,因为我声明了宽度、高度和文本缩进。
  • 我说的是不支持 inline-block 的浏览器,我不认为回退是最好的。
  • 我已经尝试过 IE7 和 IE6 中的代码 - 所有边距和填充都可以,所以我倾向于认为高度和宽度也可以使用
猜你喜欢
  • 2023-03-23
  • 2021-12-01
  • 1970-01-01
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
  • 2018-07-13
  • 1970-01-01
  • 2013-05-25
相关资源
最近更新 更多