html - css flex 收缩容器宽度以适应其元素

标签 html css

我在 flex div 中显示相同大小的元素列表。我已将它们对齐到左侧。但是我希望列表作为一个整体居中。有关如何执行此操作的任何建议?

请尝试在下方截图。

$('button').click(function(){
  $('.list').toggleClass('hack')
});
.item {
      width: 40px;
      height: 40px;
      background-color: skyblue;
      border: 1px solid black;
    }
    .list-container {
      width: 100px;
      background-color: grey;
      flex-direction: row;
      display: flex;
    }
    .spacer {
      flex: 1;
    }
    .list.hack {
      width: 84px;
    }
    .list {
      display: inline-flex;
      flex-direction: row;
      flex-wrap: wrap;
      background-color: yellow;
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='list-container'>
  <div class='spacer'></div>
  <div class='list'>
    <div class='item'></div><div class='item'></div>
    <div class='item'></div><div class='item'></div>
    <div class='item'></div>
  </div>
  <div class='spacer'></div>
</div>

<button>Toggle fixed list width (hack)</button>

最佳答案

我认为最好的方法是将“item”元素插入到新的 div 中,设置:

  <div style="margin:0 auto;width: 85px;">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
  </div>

同时应用 .item{float:left;}

关于html - css flex 收缩容器宽度以适应其元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28299244/

相关文章:

html - 无序列表导航栏 : How to I make some buttons go to the right of the navigation page?

html - 如何将 div 放在另一个之上?

css - 打破CSS中的无限动画

javascript - 如何让一个 div 展开全宽同时隐藏另一个 div

CSS 优化工具

html - 在没有 z-index 的情况下,为什么早期的 sibling 会掩盖 DOM 中的后期 sibling ?

javascript - 如果设备在移动设备上,则更改 css

java - Android webview 图像加载一次后不显示

html - 如何对齐下拉列表和 img 按钮?

HTML 实体解码为特殊字符