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

如何让datacontain div基于blue-div底部位置实现自适应定位

问题效果展示

  • 标签内容较短时正常效果:标签内容较短时的效果
  • 标签内容较长时的覆盖问题:标签内容较长时覆盖datacontain的效果

问题原因

  • .blue-div设置了position: absolute,脱离了正常文档流,高度变化不会影响下方元素位置,同时.datacontain使用了固定的margin-top: 50px,当blue-div高度超过50px时就会覆盖下方输入区域
  • .white-cont设置了固定高度height: 215px,内部内容高度超过限制后会溢出
  • HTML结构顺序不符合布局逻辑,需要放在上方的.blue-div写在了.datacontain后面

修改方案

1. 调整HTML结构

把.blue-div移到.datacontain前面,符合从上到下的渲染顺序

2. 调整CSS样式

  • 移除.blue-div的绝对定位、固定高度、top偏移属性,改用margin-top: -35px实现上移效果,设置min-height: 70px保证基础高度,内容增多时自动撑开
  • 移除.white-cont的绝对定位、固定高度属性,改用margin-top: -25px实现上移效果,设置min-height: 215px保证基础高度
  • 调整.datacontain的上边距为合适值,适配调整后的布局

完整修改后代码

CSS代码

.responsive {
  width: 100%;
  height: auto;
}
.flex-container {
  display: flex;
  flex-direction: column;
}
.blue-div {
  max-width: 70%;
  min-width: 70%;
  min-height: 70px;
  display: table;
  margin: -35px auto 0 auto;
  background-color: #003777;
  z-index: 130;
  border-radius: 10px;
}
.white-cont {
  width: 80%;
  min-height: 215px;
  display: block;
  margin: -25px auto 0 auto;
  background-color: white;
  z-index: 100;
  border-radius: 10px;
  vertical-align: middle;
  box-shadow: 1px 1px 6px 1px #888888;
  padding-bottom: 20px;
}
.container-sk {
  position: relative;
}
.input-group-addon {
  color: gray;
  background-color: #ffffff;
}
.datacontain {
  margin-top: 20px;
}
.submitButton{
  border-radius: 35px;
  display: block;
  width: 100%;
  border: none;
  background-color: #ef7c24;
  color: white;
  padding: 14px 28px;
  font-size: 16px;
  cursor: pointer;
  text-align: center;
}

HTML代码

<img src="<?php echo base_url() . 'assets/img/banner.jpg' ?>" alt="Nature" class="responsive">
<div class="container-sk flex-container" style="background-color:#28abe3; min-height:300px">
  <div class="white-cont">
    <div class="blue-div" style="">
      <label style="color:#fff;font-size:14px;display:table-cell;word-wrap: break-word;vertical-align: middle;" >this is voucher 12345 12345 12354 12345 12345 1234 1234 1234 1234 345 345345 345 345 3 </label>
    </div>
    <div class="datacontain col-md-12">
      <div class="">
        <label>phonenumber</label>
      </div>
      <div class="">
        <div class="form-group">
          <div class="input-group">
            <div class="input-group-addon">
              <img style="height:20px;width:20px" src="<?php echo base_url() . 'assets/img/flag.png' ?>">
              +62
            </div>
            <input class="form-control" id="phonenumber" name="phonenumber" type="text" />
          </div>
        </div>
        <div class="col-md-12 mx-auto">
          <button class="submitButton" type="button"> KLAIM VOUCHER </button>
        </div>
      </div>
    </div>
  </div>
</div>

修改后元素都在正常文档流内,.blue-div高度变化会自动把下方.datacontain往下挤,不会再出现覆盖问题,同时白色容器高度也会随内容自动调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:39:00