代码之家  ›  专栏  ›  技术社区  ›  tom clack

如何在一个列上对齐所有li?

  •  2
  • tom clack  · 技术社区  · 7 年前

    https://jsfiddle.net/cg578trx/10/

    .test {
      text-align: center;
      list-style-position: inside;
    }
    <div class="test">
    
      <ul>
        <li>a</li>
        <li>aa</li>
        <li>aaa</li>
        <li>aaaa</li>
        <li>aaaaa</li>
      </ul>
    
    </div>
    Output
           * a
          * aaa
         * aaaaa
        * aaaaaaa
       * aaaaaaaaa
    
    Desired Output
    
           * a
           * aaa
           * aaaaa 
           * aaaaaaa
           * aaaaaaaaa
    

    我想在一列中对齐所有li项。我使用了display:inline块,但不起作用。我该怎么解决?谢谢您。

    5 回复  |  直到 7 年前
        1
  •  2
  •   DarthJDG chetan borse    7 年前

    要使整个列表居中,请切换 text-align 回到 left <ul> ,然后成功 display: inline-block 以…为中心 <div> 作为一个整体。

    .test {
      text-align:center;
    }
    
    .test > ul {
      text-align: left;
      list-style-position: inside;
      display: inline-block;
    }
    <div class="test">
      <ul>
        <li>a</li>
        <li>aaa</li>
        <li>aaaaa</li>
        <li>aaaaaaa</li>
        <li>aaaaaaaaa</li>
      </ul>
    </div>

    你可以移除 list-style-position: inside 这取决于你的风格,因为没有必要将列表居中。

        2
  •  0
  •   Bhargav Chudasama    7 年前

    试试这个

    删除 text-align: center; 它的工作

    .test {
      list-style-position: inside;
    }
    <div class="test">
      <ul>
        <li>a</li>
        <li>aa</li>
        <li>aaa</li>
        <li>aaaa</li>
        <li>aaaaa</li>
      </ul>
    </div>
        3
  •  0
  •   Adesh Kumar    7 年前

    这样地

    .test {
      list-style-position: inside;
    
    }
    
    .test ul{
    display:table; 
    margin:0 auto;
    }
    <div class="test">
    
      <ul>
        <li>a</li>
        <li>aa</li>
        <li>aaa</li>
        <li>aaaa</li>
        <li>aaaaa</li>
      </ul>
    
    </div>
        4
  •  0
  •   Andrzej Ziółek    7 年前

    我用的是Flexbox。 display: flex; justify-content: center 确保子项与中心垂直对齐。

    如果你是新来的,我建议你 this guide 是的。

    你可以阅读更多 text-align 作品 here 是的。

    片段

    .test {
      display: flex;
      justify-content: center;
    }
    
    .test ul {
      list-style-position: inside;
    }
    <div class="test">
    
      <ul>
        <li>a</li>
        <li>aa</li>
        <li>aaa</li>
        <li>aaaa</li>
        <li>aaaaa</li>
      </ul>
    
    </div>
        5
  •  0
  •   Andrzej Ziółek    7 年前

    使用 display:flex; justify-content: center; 而不是 text-align: center; 使用 :before 将点更改为 *

    .test li {
      position: relative;
      list-style: none;
    }
    
    .test li:before {
      content: "*";
      position: absolute;
      left: -13px;
      top: 4px;
    }
    
    .test {
      display: flex;
      justify-content: center;
    }
    <div class="test">
      <ul>
        <li>a</li>
        <li>aaa</li>
        <li>aaaaa</li>
        <li>aaaaaaa</li>
        <li>aaaaaaaaa</li>
      </ul>
    </div>