【问题标题】:CSS - HTML Lists - center UL in page & left align LI itemsCSS - HTML 列表 - 在页面中居中 UL 并左对齐 LI 项
【发布时间】:2019-07-10 17:44:44
【问题描述】:

我有这个代码:

.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 项目左对齐。

所以不要这样:

我想要这样的东西:

我似乎无法让它工作..

任何帮助将不胜感激。

提前致谢!

【问题讨论】:

    标签: css alignment html-lists


    【解决方案1】:

    你也可以试试下面的弹性盒子解决方案:

    * {
      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>

    【讨论】:

    • 谢谢,但我需要容器 (UL) 居中
    • 以什么为中心? body?
    • 目前,我的ul 占据了整个页面的宽度,但是等一下,让我更新一下
    • 谢谢!这正是我的意思。它不应该占据页面的整个宽度,而无需手动设置宽度。
    • 再次感谢。我正在尝试在不设置width: 80vw; 的情况下找到解决方案,因此每行显示尽可能多的项目将占用尽可能多的空间。
    【解决方案2】:

    试试这个:

    .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】:

      由于您在 .item 中使用像素,我认为这将最适合:

      .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】:

        我找到的唯一解决方案是:

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

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

        【讨论】:

          【解决方案5】:

          尝试使用 display: flex 将 div(或其他)中的元素包围起来。边距:auto 属性仅适用于 flex。

          【讨论】:

            猜你喜欢
            • 2014-03-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-05-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多