Flexbox水平对齐项目[重复]

Posted

技术标签:

【中文标题】Flexbox水平对齐项目[重复]【英文标题】:Flexbox align items horizontally [duplicate] 【发布时间】:2017-03-27 02:57:29 【问题描述】:

有没有一种方法可以以这种方式对齐子项:[i][i]______[i][i][i],不管每个组中有多少项?

【问题讨论】:

【参考方案1】:

在 Flexbox 容器中

使用justify-content水平对齐项目。 使用align-items垂直对齐项目。

看看下面的示例 sn-p:

.parent 
  display: flex;
  width: 100%;
  height: 100px;
  align-items: center; /* Align Items Vertically */
  justify-content: space-between; /* Align Items Horizontally (with equal space in between each of them */
  background: #eee;


.children 
  display: flex;


.child 
  margin: 0 5px;
  padding: 0 5px;
  font-size: 30px;
  background: #ccc;
  color: #000;
<div class="parent">
  <div class="children left-children">
    <div class="child">1</div>
    <div class="child">2</div>
    <div class="child">3</div>
  </div>
  <div class="children right-children">
    <div class="child">4</div>
    <div class="child">5</div>
    <div class="child">6</div>
  </div>
</div>

希望这会有所帮助!

【讨论】:

@DmitryMosquid 你的意思是[i][i]______[i][i][i],它们之间应该有空格吗? 是的,我必须像 float:left 和 float:right 一样工作,但需要显示 flex.. @DmitryMosquid 为了实现这一点,您需要创建 2 个 .children 元素并将 child 放入其中(左右)并使用 justify-content: space-between; 将它们分开。仅供参考 - Float 属性不适用于 Flexbox。我已经更新了我的答案,请看一下。如果有帮助,请告诉我! 非常感谢。 这是我的荣幸!【参考方案2】:

把左右孩子放在一个div里,这样给左右

<div class="parent">
  <div class="left">
     <div class="child">1</div>
     <div class="child">2</div>
  </div>
  <div class="right">

    <div class="child">3</div>
    <div class="child">4</div>
    <div class="child">5</div>
  </div>
</div>

并给出这个 css

.parent 
     display: flex;
  width: 100%;
  height: 100px;
  justify-content: space-between; /* Align Items Horizontally */
  background: #eee;


.child 
  margin: 0 5px;
  padding: 0 5px;
  font-size: 30px;
  background: #ccc;
  color: #000;

【讨论】:

以上是关于Flexbox水平对齐项目[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 flexbox 中使用“高度:100%”和“对齐项目:拉伸”[重复]

Flexbox对齐项目溢出文本在顶部被切断[重复]

无法使用flexbox对齐项目[重复]

CSS Flexbox:对齐项目和对齐内容之间的区别[重复]

如何在不使用 Flexbox 的情况下水平对齐元素?

CSS Flexbox:将最后第n个项目对齐到末尾[重复]