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

Flexbox元素定位:宽屏布局适配需求(HTML结构不可修改)

解决方案

以下是满足需求的CSS修改方案,完全基于Flexbox实现,且未改动HTML结构:

.App {
  font-family: sans-serif;
  text-align: center;
  display: flex;
  border: 2px solid black;
  flex-wrap: wrap;
}

.one {
  background-color: red;
  flex-basis: 120px;
  height: 80px;
}

.two {
  background-color: yellow;
  flex-grow: 1;
}

.three {
  background-color: green;
  height: 30px;
  flex-basis: 100%;
}

@media only screen and (min-width: 500px) {
  .one {
    flex-shrink: 0; /* 防止红色元素被压缩 */
  }
  .two {
    flex-grow: 0;
    flex-basis: calc(100% - 120px); /* 宽度等于容器总宽减去红色元素宽度 */
    height: calc(80px - 30px); /* 高度等于红色元素高度减去绿色元素高度 */
  }
  .three {
    flex-basis: calc(100% - 120px); /* 和黄色元素保持相同宽度 */
  }
}

关键说明:

  • 宽屏模式下,给.one添加flex-shrink: 0,确保它的固定宽度不会被挤压变形。
  • 调整.two的flex-grow为0,并用calc(100% - 120px)设置宽度,使其刚好占据红色元素之外的所有空间;同时计算高度为80px - 30px,保证和绿色元素的总高度与红色元素一致。
  • 给.three设置和.two相同的flex-basis值,让它的宽度和黄色元素完全匹配,同时保持原有高度30px,两者总高度刚好为80px。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 09:25:39