Css flex - 一项在右侧,另一项在左侧空间居中

Posted

技术标签:

【中文标题】Css flex - 一项在右侧,另一项在左侧空间居中【英文标题】:Css flex - one item on the right, the other centered on the left space 【发布时间】:2017-10-26 07:24:10 【问题描述】:

我是 CSS 新手,甚至是 flex 新手。 我找不到答案,所以我开始了一个新的.. 我有以下容器和物品:

  .container 
    display: flex;
    justify-content: space-between;
    align-items: center;
  

  .item 
    color: rgb(51, 51, 51);
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  

这样我在两边都得到了 2 个项目(一个左一个右)。 我想知道如何执行以下操作:

    左边的项目,将像以前一样在左边。从它结束的点到容器结束的点 - I 与要居中的正确元素。 左边的项目,将像以前一样在左边。右边的项目将距离容器右端 10 像素。

谢谢!

【问题讨论】:

您能否提供一些 html 以及您想要实现的目标的图片?这将帮助我们确定问题所在。 寻求帮助的问题(“为什么此代码不起作用或如何使该代码起作用?”)必须包括所需的行为、特定问题或错误以及在问题本身中重现它所需的最短代码。没有明确的问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example。 【参考方案1】:

解决这个问题的方法是使用嵌套的弹性盒。去掉 .item 上的 display: block; - 你不能像这样混合使用 flex 和 block 显示规则。

你要做的是设置一系列容器:

一个***弹性容器 顶层容器内有两个大小相同的 flex 容器

标记将如下所示:

<main class="container">
  <section class="left-container">
    <div class="item"></div>
  </section>
  <section class="right-container">
    <div class="item"></div>
  </section>
</main>

在 CSS 层中,您提供*** .container flex 和 justify-content: space-between,它将容器推到两侧。

.container 
  display: flex;
  justify-content: space-between;

在两个嵌套容器中,您还需要将它们都设为display: flex;。现在您可以随意控制.item 元素的位置。 align-items: center 控制垂直轴,因此 .left-container 仅获得该定位,而右侧容器获得 justify-content: center; 控制垂直对齐。

.left-container 
  background-color: darkgray;
  display: flex;
  align-items: center;
  height: 200px;
  width: 50%;


.right-container 
  background-color: lightgray;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 200px;
  width: 50%;

项目的样式非常简单 - 我只是给出了高度和宽度用于演示目的。它们不是必需的。如果您想进行精确的调整,请在 .item 上使用 margin 以稍微偏离这些标准。

.item 
  background-color: red;
  height: 100px;
  width: 100px;

代码笔: https://codepen.io/staypuftman/pen/PmLyNM

【讨论】:

感谢非常详细的回答!真的很有帮助。 谢谢 - 很高兴它有帮助。如果答案解决了您的问题,请务必将其标记为已接受的答案,以便其他人可以遵循该解决方案。

以上是关于Css flex - 一项在右侧,另一项在左侧空间居中的主要内容,如果未能解决你的问题,请参考以下文章

使用 *ngFor 的 Angular 2 第一项在数组中丢失

如何使 ListView 的第一项在启动时被选为默认值?

添加“---选择”作为第一项在组合框的窗户形式?

[国家集训队]等差子序列

gridview中的第一项在AdapterView.OnItemClickListener中不会更改

当列表项在 d-flex 中向左浮动时对齐列表中心