如何在 div 中水平居中对齐 ul

Posted

技术标签:

【中文标题】如何在 div 中水平居中对齐 ul【英文标题】:How to horizontally centre align a ul within a div 【发布时间】:2017-01-05 21:26:56 【问题描述】:

我不确定为什么这个文本对齐中心没有生效。我查看了其他教程,我将textalign: center 应用于 div,然后将display: inline 应用于 ul。

这是我在实际构建 WordPress 主题时检查元素时来自浏览器的 html 代码的副本。

#footer-nav.collapse.navbar-collapse 
  text-align: center;
  font-size: 16px;
  color: #383434;
  margin-top: 30px;
  margin-bottom: 30px

div#footer-nav ul#menu-footer 
  display: inline-block;

ul#menu-footer li 
  padding: 0px 15px 0px 15px;
<div id="footer-nav" class="collapse navbar-collapse">
  <ul id="menu-footer" class="nav navbar-nav">
    <li id="menu-item-289" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-289"><a title="About" href="http://localhost/eat-sleep-kayak-wp/about/">About</a>
    </li>
    <li id="menu-item-366" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-305 current_page_item current_page_parent menu-item-366 active"><a title="Blog" href="http://localhost/eat-sleep-kayak-wp/blog/">Blog</a>
    </li>
    <li id="menu-item-290" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-290"><a title="Newsletter" href="http://localhost/eat-sleep-kayak-wp/newsletter/">Newsletter</a>
    </li>
    <li id="menu-item-365" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-365"><a title="Advertise" href="http://localhost/eat-sleep-kayak-wp/advertise/">Advertise</a>
    </li>
    <li id="menu-item-288" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-288"><a title="Contact" href="http://localhost/eat-sleep-kayak-wp/contact/">Contact</a>
    </li>
  </ul>
</div>

【问题讨论】:

@pol 是 li 居中而不是 ul @elliot 你可以使用 CSS Flex 吗? @AkinjideBankole 我不知道。 @ElliottDavidson 我刚刚在下面发布了一个代码笔链接,希望对您有所帮助。 【参考方案1】:

我正在使用 CSS Flex。您可以查看codepen link.

#footer-nav.collapse.navbar-collapse 
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
    flex-direction: row;
  justify-content: center; // This centers the ul
  font-size: 16px;
  color: #383434;
  margin-top: 30px;
  margin-bottom: 30px;


div#footer-nav > ul#menu-footer 
    display: inline-block;


ul#menu-footer li 
  padding: 0px 15px 0px 15px;

【讨论】:

【参考方案2】:

好像你正在使用 Bootstrap 来构建它; bootstrap 的默认 CSS 是将导航栏设置为float,那么inline-block 属性对实现居中毫无作用。

这是默认的 CSS:

.navbar-nav 
    float: left;
    margin: 0px;

你可以在你的实际代码中添加这个:

div#footer-nav ul#menu-footer 
    display: inline-block;
    float:none;

BootplyDemo

【讨论】:

谢谢,不敢相信这只是一个简单的浮动导致了这个问题。再次感谢!

以上是关于如何在 div 中水平居中对齐 ul的主要内容,如果未能解决你的问题,请参考以下文章

怎么能让ul里的li垂直水平居中

HTML CSS中如何实现DIV中的图片水平垂直居中对齐

居中水平对齐的标题

如何使文字在div中水平和垂直居中的css代码

1、如何用CSS设置ul,使其在div中li靠左对齐?ul有默认的左边距。2、和设置ul的标签样式的大小

如何水平居中元素