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

如何实现Class B占据全部可用空间且不覆盖左上角的div?

实现左上角固定Div + 剩余空间填充Div的布局方案

需要页面左上角保留一个独立Div,同时让Class B的Div占据剩余所有可用空间,避免Class B覆盖左上角Div,以下是几种可靠的实现方案:

方案一:Flexbox布局(推荐)

利用Flexbox的空间分配特性,父容器设为flex,左上角Div保持自身尺寸,Class B通过flex:1抢占剩余空间。

<div class="container">
  <div class="top-left">左上角Div</div>
  <div class="class-b">Class B 填充剩余空间</div>
</div>
.container {
  display: flex;
  /* 若需要垂直布局,改为flex-direction: column; */
  width: 100vw;
  height: 100vh;
}

.top-left {
  width: 200px; /* 自定义宽度 */
  height: 150px; /* 自定义高度 */
  background: #f0f0f0;
  margin-right: 10px; /* 可选:添加间距 */
}

.class-b {
  flex: 1; /* 占据所有剩余空间 */
  background: #e0e0e0;
}

Flexbox会自动处理空间分配,Class B绝不会覆盖左上角Div,布局简洁且适配各种屏幕。

方案二:Grid布局

通过Grid划分布局区域,左上角Div占指定单元格,Class B填充剩余区域。

<div class="container">
  <div class="top-left">左上角Div</div>
  <div class="class-b">Class B 填充剩余空间</div>
</div>
.container {
  display: grid;
  grid-template-columns: auto 1fr; /* 第一列适配左上角Div宽度,第二列占剩余 */
  grid-template-rows: 1fr;
  width: 100vw;
  height: 100vh;
  gap: 10px; /* 可选:添加间距 */
}

.top-left {
  background: #f0f0f0;
  width: 200px; /* 自定义宽度 */
  height: 150px; /* 自定义高度 */
}

.class-b {
  background: #e0e0e0;
}

方案三:传统布局(仅兼容旧浏览器)

手动给Class B设置margin,避开左上角Div的位置,这种方式需要手动计算尺寸,维护性差:

<div class="top-left">左上角Div</div>
<div class="class-b">Class B 填充剩余空间</div>
.top-left {
  position: absolute;
  top: 0;
  left: 0;
  width: 200px;
  height: 150px;
  background: #f0f0f0;
}

.class-b {
  margin-left: 210px; /* 左上角Div宽度 + 间距 */
  width: calc(100% - 210px);
  height: 100vh;
  background: #e0e0e0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 00:32:41