在HTML 5视频上叠加DIV

Jos*_*ott 33 html css html5 css3 html5-video

我需要覆盖包含HTML 5视频的div的div ON TOP.在下面的示例中,重叠的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>
Run Code Online (Sandbox Code Playgroud)

mis*_*Sam 28

这是一个精简的示例,使用尽可能少的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;
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)


Jul*_*nez 15

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

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;
}
Run Code Online (Sandbox Code Playgroud)

  • jsfiddle 中的视频链接似乎已损坏。 (3认同)

man*_*van 15

这是一个将内容置于父div中心的示例.这也可确保叠加层始于视频边缘,即使在居中时也是如此.

<div class="outer-container">
    <div class="inner-container">
        <div class="video-overlay">Bug Buck Bunny - Trailer</div>
        <video id="player" src="http://video.webmfiles.org/big-buck-bunny_trailer.webm" controls autoplay loop></video>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

用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%;
}
Run Code Online (Sandbox Code Playgroud)

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

希望有帮助:)


Bhu*_*tel 5

<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>
Run Code Online (Sandbox Code Playgroud)

为此,您只需要像这样添加 css:

#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;}
Run Code Online (Sandbox Code Playgroud)