45

我需要在包含 HTML 5 视频的 div 的顶部覆盖一个 div。在下面的示例中,覆盖 div 的 id 是“video_overlays”。请参见下面的示例:

<div id="video_box">
  <div id="video_overlays"></div>
  <div>
    <video id="player" src="http://video.webmfiles.org/big-buck-bunny_trailer.webm" type="video/webm" onclick="this.play();">Your browser does not support this streaming content.</video>
  </div>
</div>

4

4 回答 4

39

这是一个精简的示例,使用尽可能少的 HTML 标记。

基础知识

  • 覆盖由容器:before上的伪元素提供。.content

  • 不需要 z-index,:before自然地在视频元素上分层。

  • .content容器position: relative使得覆盖层相对于position: absolute它定位。

  • 叠加层被拉伸以覆盖整个.contentdiv 宽度,left / right / bottomleft设置为0.

  • 视频的宽度由其容器的宽度控制width: 100%

演示

.content {
  position: relative;
  width: 500px;
  margin: 0 auto;
  padding: 20px;
}
.content video {
  width: 100%;
  display: block;
}
.content:before {
  content: '';
  position: absolute;
  background: rgba(0, 0, 0, 0.5);
  border-radius: 5px;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
<div class="content">
  <video id="player" src="https://upload.wikimedia.org/wikipedia/commons/transcoded/1/18/Big_Buck_Bunny_Trailer_1080p.ogv/Big_Buck_Bunny_Trailer_1080p.ogv.360p.vp9.webm" autoplay loop muted></video>
</div>

于 2014-10-07T16:41:02.213 回答
20

这是一个将内容集中在父 div 中的示例。这也确保了覆盖从视频边缘开始,即使居中。

<div class="outer-container">
    <div class="inner-container">
        <div class="video-overlay">Bug Buck Bunny - Trailer</div>
        <video id="player" src="https://wiki.yoctoproject.org/wiki/images/a/a6/Big-buck-bunny_trailer.webm" controls autoplay loop></video>
    </div>
</div>

用css作为

.outer-container {
    border: 1px dotted black;
    width: 100%;
    height: 100%;
    text-align: center;
}
.inner-container {
    border: 1px solid black;
    display: inline-block;
    position: relative;
}
.video-overlay {
    position: absolute;
    left: 0px;
    top: 0px;
    margin: 10px;
    padding: 5px 5px;
    font-size: 20px;
    font-family: Helvetica;
    color: #FFF;
    background-color: rgba(50, 50, 50, 0.3);
}
video {
    width: 100%;
    height: 100%;
}

这是 jsfiddle https://jsfiddle.net/dyrepk2x/2/

希望有帮助:)

于 2015-10-06T22:39:14.470 回答
17

你去吧,我希望这会有所帮助

http://jsfiddle.net/kNMnr/

这里也是 CSS

#video_box{
    float:left;
}
#video_overlays {
position:absolute;
float:left;
    width:640px;
    min-height:370px;
    background-color:#000;
    z-index:300000;
}
于 2013-05-29T21:06:52.683 回答
6
<div id="video_box">
  <div id="video_overlays"></div>
  <div>
    <video id="player" src="http://video.webmfiles.org/big-buck-bunny_trailer.webm" type="video/webm" onclick="this.play();">Your browser does not support this streaming content.</video>
  </div>
</div>

for this you need to just add css like this:

#video_overlays {
  position: absolute;
  background-color: rgba(0, 0, 0, 0.46);
  z-index: 2;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
#video_box{position: relative;}
于 2017-02-15T05:51:45.033 回答