如何水平对齐中心UI元素(How to horizontally align a ul elemen

2019-08-08 04:33发布

我不能对齐菜单,包含一个内ul ,其容器的水平中心。 怎么做?

看到上的jsfiddle菜单的现场演示 。

<li><a href="aboutus.php">AboutUs</a>
    <ul class="sub">
        <li><a href="aboutsquare.php">About Square Innovations</a></li>
        <li><a href="ourvision.php">Our Vision</a></li>
        <li><a href="ourmission.php">Our Mission</a></li>
        <li><a href="trainerprofiles.php">Trainer Profiles</a></li>
        <li><a href="funclass.php">Fun In Our ClassRooms</a></li>
    </ul>
</li>

Answer 1:

可以解决ul元素作为页面流内的行内元素,同时保持其块级特征(使用inline-block显示值) -应用此之后,它可以简单地其容器内对准像任何inline-级元素,使用text-align

要实现这一点,添加以下规则:

#container {
    text-align: center;
}
ul {
    display: inline-block;
}

以下是更新的演示

参考

  • display在Mozilla开发者网络

声明:为支持inline-block是比较有限,见上caniuse.com兼容性表 。



Answer 2:

有一个很尼思,完全跨浏览器和动态的“绝招”来实现这一点,只要在菜单停留在一行。 这是很好的说明如下: http://matthewjamestaylor.com/blog/beautiful-css-centered-menus-no-hacks-full-cross-browser-support

该inline-block的经常建议对于这个问题也没有很好的支持旧版浏览器在我的经验。 说实话,我从来没有使用它。 我总是去马修詹姆斯·泰勒介绍了巧妙的方法。

编辑:按照要求,我将简要介绍一下技术。 你的HTML应该像一个链接普通列表,与它周围的一个额外的包装股利。 事情是这样的:

<div class="menu-wrapper">
  <ul>
    <li><a ...>link</a></li>
    <li><a ...>link</a></li>
    <li><a ...>link</a></li>
  </ul>
</div>

现在剩下的就是CSS的工作。 步骤如下:

  • 浮法包装到左侧,并给它100%的宽度,使其占据整个视宽
  • 浮法两个ulli左,不给他们任何的宽度,使它们适应他们的内容。
  • ul一个position: relativeleft: 50% 这将使它的左边缘移动到中心的它的父,这意味着视口的中心。
  • 最后,你应该给你li一个position: relativeleft: -50% 这会让他们搬过去父的左边缘ul ,使清单的中心li的排队与父的左边缘ul 。 由于我们所做的优势我们在上一步中视口的中心,菜单现在有效居中。

正如我之前所说, 所有学分马修·詹姆斯·泰勒 ,以及definitly检查了他的彻底的解释 。 图中他取得使它更容易理解。

编辑
按照要求我建立了一个小提琴证明了该技术: http://jsfiddle.net/fDmCQ/



Answer 3:

上缘改变<ul>0 auto ,并给它的宽度(〜575px或更大)。

例如的jsfiddle

 ul {
     font-family: Arial, Verdana;
     font-size: 14px;
     margin: 0 auto;
     padding: 0;
     width:600px;
     list-style: none;
     text-align: center;
 }


文章来源: How to horizontally align a ul element to center