html – 如何对齐一个flex项目并使用Flexbox 右对齐另一个

前端之家收集整理的这篇文章主要介绍了html – 如何对齐一个flex项目并使用Flexbox 右对齐另一个前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Center and right align flexbox elements2
我对FlexBox来说是全新的,并且希望对齐按钮,但是我看不到如何使用仅使用FlexBox的同一行上的中心对齐按钮和右对齐按钮来处理常见的情况.

但是,我发现一种使用与右对齐项目相同长度的不可见的左对齐项目和使用空格的flex对齐内容,以使中间项目位于行上.

FlexBox有更直接的方法吗?

.flexcontainer {
  display: flex;
  justify-content: space-between;
  width: 500px;
  height: 200px;
}
.iteminvisible {
  flex: 0 1 auto;
  width: 100px;
  height: 100px;
  visibility: hidden;
}
.itemcenter {
  flex: 0 1 auto;
  width: 150px;
  height: 100px;
  .itemright {
    flex: 0 1 auto;
    width: 100px;
    height: 100px;
  }
<div class="flexcontainer">
  <div class="iteminvisible">Other</div>
  <div class="itemcenter">One</div>
  <div class="itemright">Other</div>
</div>

解决方法

使用justify-content:空格与不可见的flex项目,如您的问题所述,是实现所需布局的好方法.只要注意,如果左和右项目的长度相等( see demo),则中间项目只能居中.

您可能想要考虑的另一个解决方案涉及auto marginsabsolute positioning.这种方法的两个好处是不需要额外的标记,无论项目大小,都可以实现真正的对中.一个缺点是中心的项目从document flow删除(这可能或可能不重要).

.flexcontainer {
      display: flex;
      justify-content: flex-start;   /* adjustment */
      position: relative;            /* new */
      width: 500px;
      height: 200px;
    }

.itemcenter {
      flex: 0 1 auto;
      width: 150px;
      height: 100px; 
      position: absolute;             /* new */
      left: 50%;
      transform: translateX(-50%);
    }

.itemright {
      flex: 0 1 auto;
      width: 100px;
      height: 100px;
      margin-left: auto;              /* new */
    }
<div class="flexcontainer">
  <div class="itemcenter">One</div>
  <div class="itemright">Other</div>
</div>

更多细节在这里:Methods for Aligning Flex Items along the Main Axis(见框#62-78).

原文链接:https://www.f2er.com/html/230494.html

猜你在找的HTML相关文章