html - CSS:使用中心元素作为引用将元素对齐到中心

标签 html css flexbox

<分区>

我正在创建一个页眉,我希望中央 Logo 将所有其他元素定位在它的左右两侧。我希望中央 Logo 始终保持在页眉的正中央。

当 header 中的某些元素不如其他元素宽时,问题就来了,所以我不能使用 justify-content: center 因为它会将所有元素准确地对齐到中心 header 的,但中央 header 被向左或向右推得太远。

我想要的在下面我美丽的 MS 绘画中得到了展示。请注意红色 div 边框的深蓝色元素之间的空间如何在左侧或右侧相同。

enter image description here

最佳答案

我不确定为什么有人会跳到认为这是不可能的 - Flexbox 非常适合这种类型的东西。让我知道这是否是您想要的...

为了解释 - 我在 Flexbox 行中创建了三个容器,其中的元素在中间对齐。中间的容器关闭了 flex,因此它位于中间的适当宽度处。左边和右边的容器是灵活的,可以增长以填充其余空间,从而形成对称。然后,您只需将左侧容器中的元素向右对齐即可。

.f-row {
  display: flex;
  flex: 1 1 0;
  border: 1px black solid;
}

.f-row.no-flex {
  flex: none;
}

.f-row.center {
  align-items: center;
}

.f-row.right {
  justify-content: flex-end;
}

.box {
  height: 25px;
  width: 50px;
}

.blue {
  background: blue;
}
.red {
  background: red;
}
.yellow {
  background: yellow;
}
.pink {
  background: pink;
}
.purple {
  background: purple;
}
<div class="f-row center">
  <div class="f-row right">
    <div class="box blue"></div>
    <div class="box red"></div>
    <div class="box yellow"></div>
  </div>
  <div class="f-row no-flex">
    <h1>LOGO</h1>
  </div>
  <div class="f-row">
    <div class="box pink"></div>
    <div class="box purple"></div>
  </div>
</div>

关于html - CSS:使用中心元素作为引用将元素对齐到中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58664206/

上一篇:html - 实现 Bootstrap 4 数据表

下一篇:javascript - 如何通过q​​uerySelector改变同一个类的多个div

相关文章:

css - file.css.scss 和 file.scss 之间的区别(Rails)

html - 在 flexbox 布局中,交叉轴是否有 `flex-shrink: 0` 声明?

html - 当父级使用 flex 且元素没有内容时,Flex 子级在容器上增长

css - 使用 CSS 显示 XSTL 表格

css - 在 Opera 中使用 SVG Sprite 渲染效果不佳

html - 证明内容 : space-between works incorrect

html - 为什么 Pattern 属性不适用于类型 ="date"?

javascript - 水平滚动时固定表格中的第一列

javascript - 如何在动态图像表上添加叠加标签?

html - 如何仅使用 CSS 实现剧透引用?