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

表单区块与带图片文本区块的布局定位实现求助

表单区块与带图片文本区块的布局定位实现求助

Hey Kyrylo, 别慌!我完全懂你对着任务卡壳、越看越懵的感觉,咱们一步步来搞定这个需求——把带标题和图片的文本区块放在左边,表单放在右边,两者之间保持188px的间距。

问题分析

你目前的代码里尝试用calc(50% - 188px)来设置两个区块的宽度,但这个计算逻辑有问题,而且父容器没配置合适的布局方式,导致两个元素没法并排显示。咱们用Flex布局就能轻松实现这个效果。

具体修改步骤

1. 给父容器添加Flex布局

首先给包裹两个区块的.rent-yacht-block设置Flex布局,直接用gap属性来控制两个区块之间的188px间距:

.rent-yacht-block {
  display: flex;
  gap: 188px; /* 这就是你需要的188px左右间距 */
  align-items: flex-start; /* 让两个区块顶部对齐,避免内容被不必要拉伸 */
}

2. 修正子元素的宽度设置

去掉你之前给.rent-yacht-image和.rent-yacht-form-container设置的width: calc(50% - 188px),换成更合理的宽度配置:

.rent-yacht-image {
  flex: 1; /* 让左边的文本+图片区块占据剩余可用空间,自适应宽度 */
}

.rent-yacht-form-container {
  width: 443px; /* 因为你的表单输入框都是443px宽,这里设置固定宽度刚好匹配 */
}

3. 优化标题的样式

你之前给.rent-yacht-heading设置了固定宽高,可能会导致标题换行异常,建议去掉固定宽高,让它自适应内容:

.rent-yacht-heading {
  /* 移除width: 282px; height: 132px; */
  color: var(--white-cl);
  font-family: DM Sans;
  font-size: 60px;
  font-style: normal;
  font-weight: 500;
  line-height: 66px;
  letter-spacing: -2.7px;
  margin-bottom: 64px;
}

4. 修正HTML结构的类名冲突

你在表单内部重复使用了.rent-yacht-form-container类,这会和外层的表单容器样式冲突,建议把表单内的每个输入项容器换成新类名,比如.form-group:

<form class="rent-yacht-form">
  <div class="form-group">
    <label for="user-name" class="rent-yacht-input-label"></label>
    <div class="rent-yacht-input-container">
      <input type="text" placeholder="Full Name" name="user-name" id="user-name" class="rent-yacht-input" />
    </div>
  </div>
  <div class="form-group">
    <label for="user-email" class="rent-yacht-input-label"></label>
    <div class="rent-yacht-input-container">
      <input type="email" placeholder="Email" class="rent-yacht-input" />
    </div>
  </div>
  <div class="form-group">
    <label for="user-phone" class="rent-yacht-input-label"></label>
    <div class="rent-yacht-input-container">
      <input type="tel" placeholder="Phone Number" class="rent-yacht-input" />
    </div>
  </div>
  <div class="rent-yacht-textarea-container">
    <label for="user-comment" class="rent-yacht-input-label"></label>
    <textarea
      name="user-comment"
      id="user-comment"
      cols="30"
      rows="10"
      placeholder="Comment"
      class="rent-yacht-textarea"
    ></textarea>
  </div>
  <button class="rent-yacht-send-button" type="submit">
    Send<svg class="send-arrows-icon" width="18" height="8">
      <use href="../img/icons.svg#icon-arrow-right"></use>
    </svg>
  </button>
</form>

额外小提示

刚学布局的时候,Flex布局是非常好用的工具,你可以多熟悉display: flex、gap、flex、align-items这些基础属性的作用,多调整测试几次,很快就能掌握这种左右布局的实现啦!

备注:内容来源于stack exchange,提问作者Kyrylo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 08:50:29