代码之家  ›  专栏  ›  技术社区  ›  ET-CS

CSS-HTML列表-在页面中居中,左对齐LI项

  •  2
  • ET-CS  · 技术社区  · 7 年前

    我有以下代码:

    .menu {
        margin: auto;
        padding: 0;
        list-style-type: none;
    }
    .item {
        width: 60px;
        text-align: center;
        font-size: 4em;
        background-color:red;
        display: inline-block;
        margin: 5px;
        padding: 25px;
    }
    <ul class="menu">
      <li class="item">1</li>
      <li class="item">2</li>
      <li class="item">3</li>
      <li class="item">4</li>
      <li class="item">5</li>
      <li class="item">6</li>
      <li class="item">7</li>
      <li class="item">8</li>
      <li class="item">9</li>
      <li class="item">10</li>
    </ul>

    我要将整个 ul 容器,同时保持 li 项目向左对齐。

    因此,与此相反:

    enter image description here

    我想要这样的东西:

    enter image description here

    我似乎无法让它工作。。

    任何帮助都将不胜感激。

    提前感谢!

    5 回复  |  直到 7 年前
        1
  •  0
  •   user4447799 user4447799    7 年前

    您还可以尝试以下flex box解决方案:

    * {
      margin: 0;
      padding: 0;
    }
    
    body {
      width: 100vw;
      height: 100vh;
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    
    .menu {
      position: relative;
      list-style: none;
      width: 80vw;
      display: flex;
      flex-flow: row wrap;
      justify-content: flex-end; 
      background: green;
    }
    
    .item {
      width: 15vw;
      height: 15vw;
      background: red;
      margin: 1vw;
      /*the following is only for styling the numbers*/
      font-size: 25px;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    <ul class="menu">
      <li class="item">1</li>
      <li class="item">2</li>
      <li class="item">3</li>
      <li class="item">4</li>
      <li class="item">5</li>
      <li class="item">6</li>
      <li class="item">7</li>
      <li class="item">8</li>
      <li class="item">9</li>
      <li class="item">10</li>
    </ul>
        2
  •  0
  •   Fernando Hernandez    7 年前

    试试这个:

    .menu {
    padding: 0;
    list-style-type: none;
    width: 500px; /* Change this value is you need more li in the same line. You can also use percents */
    /*width: 90% */
    display: block;
    margin-right: auto;
    margin-left: auto;
    }
    .item {
    width: 60px;
    text-align: center;
    font-size: 4em;
    background-color:red;
    display: inline-block;
    margin: 5px;
    padding: 25px;
    }
    
        3
  •  0
  •   A. Meshu James Shuttler    7 年前

    因为您使用的是像素。项目,我认为这将是最好的:

    .menu {
      min-width: 300px;
      max-width: 90%;
      margin: auto;
      padding: auto;
      list-style-type: none;
    }
    .item {
      width: 60px;
      text-align: center;
      font-size: 4em;
      background-color: red;
      display: inline-block;
      margin: 5px;
      padding: 25px;
    }
    

    基本上,我只是添加了UL元素的测量值。 希望我能帮忙,祝你好运!

        4
  •  0
  •   ET-CS    7 年前

    我找到的唯一解决方案仍然允许整个UL在居中的情况下尽可能多地利用浏览器宽度(以提高响应能力):

    ul.menu {
       margin: 0 auto;
       width: {x}px
    }
    

    和使用 @media 查询以设置不同屏幕尺寸的完美宽度。

        5
  •  0
  •   Mantas GiniÅ«nas    5 年前

    尝试用display:flex在div(或任何其他)中包围元素。边距:auto属性仅适用于flex。