如何在不知道其宽度的情况下将 ul li 列表居中? (分页)

Posted

技术标签:

【中文标题】如何在不知道其宽度的情况下将 ul li 列表居中? (分页)【英文标题】:How to center ul li list without knowing its width? (pagination) 【发布时间】:2017-10-18 03:33:05 【问题描述】:

如何在不知道宽度的情况下将这个 ul_li 列表居中?我需要它,因为它的宽度在各种情况下可能会有所不同。

还有一个问题,如何使这个列表居中并使其看起来完全一样,只是居中?

margin-left:auto,margin-right:auto 不起作用。 :

.pagination 
  margin-left: auto;
  margin-right: auto;
  min-width: 100px;
  height: 30px;
  display: table;


.pagination ul 
  list-style: none;


.pagination ul li 
  float: left;
  padding: 10px;
  border: 1px solid #000000;
  font-size: 14px;
  border-radius: 10%;
<meta http-equiv="X-Ua-Compatible" content="IE=edge,chrome=1">
<!--[if lt IE 9]>
        <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
        <![endif]-->

<div class="pagination">
  <ul>
    <li>
      &laquo;
    </li>
    <li>
      1
    </li>
    <li>
      2
    </li>
    <li>
      3
    </li>
    <li>
      4
    </li>
    <li>
      &raquo;
    </li>
  </ul>
</div>

【问题讨论】:

周围使用
@ShubhamKundu 不。无论如何 - 它以我的 Chrome 为中心 How to horizontally align ul to center of div?的可能重复 @Shubham Kundu 如果这是一个答案,我会拒绝你 10 次 @mplungjan,我永远不知道宽度是多少!这不是麻烦。另见"How do I center align horizontal <UL> menu?"。 【参考方案1】:

在 li 上使用display:inline-block 而不是 float:left 并给父母text-align:canter

这是解决方法。

.pagination 
  margin: 0px auto;
  width: auto;
  text-align: center;


.pagination ul 
  list-style: none;
  padding: 0px;
  width: auto;


.pagination ul li 
  display: inline-block;
  padding: 10px;
  border: 1px solid #000000;
  font-size: 14px;
  border-radius: 10%;
<div class="pagination">
  <ul>
    <li>
      &laquo;
    </li>
    <li>
      1
    </li>
    <li>
      2
    </li>
    <li>
      3
    </li>
    <li>
      4
    </li>
    <li>
      &raquo;
    </li>
  </ul>
</div>

【讨论】:

我在 Chrome 中发现与原版没有区别 @mplungjan 我想这是一个更好的方法 ;)【参考方案2】:

您只需在.pagination ul 中添加padding:0。没有别的。

请检查一下。

.pagination 
  margin-left: auto;
  margin-right: auto;
  min-width: 100px;
  height: 30px;
  display: table;


.pagination ul 
  list-style: none;
  padding:0;


.pagination ul li 
  float: left;
  padding: 10px;
  border: 1px solid #000000;
  font-size: 14px;
  border-radius: 10%;
<meta http-equiv="X-Ua-Compatible" content="IE=edge,chrome=1">
<!--[if lt IE 9]>
        <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
        <![endif]-->

<div class="pagination">
  <ul>
    <li>
      &laquo;
    </li>
    <li>
      1
    </li>
    <li>
      2
    </li>
    <li>
      3
    </li>
    <li>
      4
    </li>
    <li>
      &raquo;
    </li>
  </ul>
</div>

【讨论】:

以上是关于如何在不知道其宽度的情况下将 ul li 列表居中? (分页)的主要内容,如果未能解决你的问题,请参考以下文章

如何水平居中未知宽度的无序列表?

如何让用户在不使用输入字段的情况下将文本输入 <li>? [关闭]

在不知道高度的情况下将 div 居中

如何在不知道宽度的情况下将元素存储在二维向量中?

ul li 水平居中

求ul中的li布局CSS布局,横向垂直都要居中,如何实现?