You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flexbox中justify-content: space-between不生效问题求助

解决方法

问题出在你给两个子div都加了flex-grow: 1,这会让它们平分容器宽度,同时你把justify-content加在了错误的层级上——应该给最外层的.top-nav设置,而不是子div。

优化后的代码

CSS 部分

.top-nav {
  display: flex;
  position: absolute;
  background-color: blue;
  opacity: 0.5;
  height: 10%;
  top: 0;
  width: 100%;
  left: 0;
  padding: 0;
  border: 0;
  margin: 0;
  /* 关键:让子元素分别靠左右对齐 */
  justify-content: space-between;
  align-items: center; /* 可选:让图片垂直居中 */
}

.top-nav div {
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
}

HTML 部分

<div class="top-nav">
  <div><img src="/textures/logo.svg"></div>
  <div><img src="/textures/profile.svg"></div>
</div>

问题根源说明

  • flex-grow: 1会让两个子div平分容器剩余宽度,导致它们无法贴紧屏幕两端,直接移除即可。
  • justify-content: space-between是作用在父级flex容器(.top-nav)上的属性,它能让子元素在主轴上均匀分布,首尾元素自动贴紧容器边缘。
  • 子div不需要设置display: flex,这里仅用于包裹图片,多余的flex设置反而会干扰布局。

如果不想让图片完全贴死屏幕边缘,可以给.top-nav添加左右内边距,比如padding: 0 16px;来预留空间。

内容的提问来源于stack exchange,提问作者d1298

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 19:01:16