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

如何移除Flex布局计算器中.result与.btn元素间的空白间隙?

解决计算器.result与.btn之间的空白间隙问题

问题出在你给.kalkulator下的所有子div都设置了flex-grow:1,包括.result。这会让flex布局把父容器的50vh高度按所有子元素的flex-grow比例分配,导致.result的height:10vh被覆盖,最终和按钮之间出现间隙。

解决方法

方法1:精准选择按钮元素

修改CSS,把针对所有子div的样式只应用到.btn,避免影响.result:

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

h1 {
  margin: 0 auto 5vh;
  background-color: gray;
  text-align: center;
}

.kalkulator {
  display: flex;
  flex-wrap: wrap;
  height: 50vh;
  width: 30vw;
  margin: 0 auto;
}

.kalkulator .result {
  flex-basis: 100%;
  height: 10vh;
  background-color: #333;
  /* 如果不需要.result的边框,加上下面这行 */
  border: none;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* 只对.btn应用flex和border样式 */
.kalkulator .btn {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-grow: 1;
  flex-basis: 33%;
  background-color: #666;
  border: 1px solid black;
}

.btn:nth-last-child(2),
.btn:nth-last-child(1) {
  flex-basis: 50%;
}

方法2:覆盖.result的flex-grow属性

如果你不想修改选择器,可以在.result的样式里显式设置flex-grow:0,阻止它参与高度分配:

.kalkulator .result {
  flex-basis: 100%;
  height: 10vh;
  background-color: #333;
  flex-grow: 0; /* 关键:不让.result拉伸高度 */
  border: none; /* 可选:去掉.result的边框 */
}

这样修改后,.result会保持10vh的固定高度,剩下的空间会被按钮填满,两者之间的空白间隙就会消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 18:55:30