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

如何将Div绑定到尺寸动态变化的视频?如何调整Figcaption至视频块起始处?

纯CSS解决方案

问题1:让div绑定到动态尺寸的视频上

要实现div跟随视频的右上角,核心是让div的绝对定位参考系与视频尺寸绑定,以下两种方案均可实现:

方案1:添加视频容器(轻微调整HTML结构)

将视频和div放入同一个相对定位的容器中,div的绝对定位会基于容器尺寸,无论视频如何缩放,div都会固定在视频右上角。

<figure>
  <div class="video-wrapper">
    <video></video>
    <div>something</div>
  </div>
  <figcaption>title</figcaption>
</figure>
body {
  max-width: 100%;
  margin: auto;
}

figure {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px; /* 可选:调整标题与视频的间距 */
}

.video-wrapper {
  position: relative;
  min-width: 70%;
  max-width: 100%;
}

video {
  width: 100%;
  height: 400px;
  background: black;
}

.video-wrapper div {
  position: absolute;
  color: red;
  top: 0;
  right: 0;
  margin: 8px; /* 可选:避免div紧贴视频边缘 */
}

figcaption {
  min-width: 70%;
  max-width: 100%;
  text-align: left;
}

方案2:使用CSS Grid(无需修改原HTML结构)

利用Grid布局让视频和div共享同一个单元格,div的绝对定位会自动匹配视频尺寸范围,同时保证视频居中显示。

body {
  max-width: 100%;
  margin: auto;
}

figure {
  display: grid;
  justify-content: center;
  gap: 8px; /* 可选:调整标题与视频的间距 */
}

video, figcaption {
  grid-column: 1;
}

video {
  grid-row: 1;
  min-width: 70%;
  max-width: 100%;
  height: 400px;
  background: black;
}

div {
  grid-row: 1;
  grid-column: 1;
  position: absolute;
  color: red;
  top: 0;
  right: 0;
  margin: 8px; /* 可选:避免div紧贴视频边缘 */
  z-index: 1; /* 确保div显示在视频上方 */
}

figcaption {
  grid-row: 2;
  min-width: 70%;
  max-width: 100%;
  text-align: left;
}

问题2:让figcaption对齐视频的左起始位置

上述两种方案中,figcaption的min-width和max-width都与视频保持一致,同时通过flex或grid的居中布局,让figcaption和视频的水平对齐方式完全相同,因此figcaption的左边缘会自动与视频左边缘对齐,无需JavaScript计算外边距。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 22:12:49