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

如何用Flexbox实现项目与侧边栏的指定对齐布局?

布局调整方案:文本网格+纵向视频侧边栏

需求概述

需实现如下布局,右侧视频为同一内容,沿侧边纵向延伸:

Text AText BText C视频
Text DText EText F视频

调整后的代码

HTML代码

<section id="s2">
  <h2>What do we do here?</h2>
  <br>
  <div id="list">
    <div class="services">
      <div><a href="" id="item1" class="serviceclasses">Text A</a></div>
      <div><a href="" id="item2" class="serviceclasses">Text B</a></div>
      <div><a href="" id="item3" class="serviceclasses">Text C</a></div>
      <div><a href="" id="item4" class="serviceclasses">Text D</a></div>
      <div><a href="" id="item5" class="serviceclasses">Text E</a></div>
      <div><a href="" id="item6" class="serviceclasses">Text F</a></div>
    </div>
    <div class="side">
      <aside class="video-sidebar">
        <figure>
          <figcaption>VIDEO</figcaption>
          <div class="video">
            <video controls>
              <source src="felixynwa.mp4">
            </video>
          </div>
          <figcaption>VIDEO BOTTOM TEXT</figcaption>
        </figure>
      </aside>
    </div>
  </div>
  <br>
</section>

CSS代码

/* 最外层容器:文本区域与视频侧边栏横向排列 */
#list {
  display: flex;
  gap: 20px;
  align-items: stretch; /* 强制视频侧边栏与文本区域高度一致 */
}

/* 文本网格容器:自动换行,每行3列 */
.services {
  display: flex;
  flex-wrap: wrap;
  gap: 40px; /* 统一控制文本项间距,替代冗余margin */
  flex: 1; /* 占据容器剩余空间 */
}

/* 文本项样式:固定宽度占比,确保每行3个 */
.serviceclasses {
  box-sizing: border-box;
  text-align: center;
  background-color: #f5f5f5;
  color: #000;
  padding: 30px;
  border-radius: 10px;
  box-shadow: 0 3px 5px rgba(0, 0, 0, 0.6);
  flex: 1 1 calc(33.333% - 27px); /* 减去gap均分宽度,保证每行3项 */
  min-width: 180px; /* 小屏幕下避免过度挤压 */
}

/* 视频侧边栏:固定宽度,纵向适配高度 */
.side {
  flex: 0 0 280px; /* 固定宽度,不随容器缩放 */
  display: flex;
}

.video-sidebar {
  width: 100%;
  background-color: #f5f5f5;
  border-radius: 10px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.video video {
  width: 100%;
  height: auto;
  border-radius: 8px;
}

figcaption {
  text-align: center;
  margin: 10px 0;
  font-weight: bold;
}

核心调整说明

  • 外层Flex布局:给#list添加display: flex和align-items: stretch,让视频侧边栏与文本区域高度完全对齐,实现纵向延伸效果。
  • 文本网格控制:修改.services的Flex属性,用gap替代重复margin,通过flex: 1 1 calc(33.333% - 27px)确保每行恰好显示3个文本项,同时设置最小宽度适配移动端。
  • 视频侧边栏适配:给.side设置固定宽度,内部用Flex布局让视频垂直居中,视频宽度自适应容器保持比例。
  • 样式精简:清理.serviceclasses中的重复属性,用box-sizing: border-box避免padding影响宽度计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 17:33:16