是否可以让 div 的背景成为具有“包含”属性的 HTML5 视频?

Posted

技术标签:

【中文标题】是否可以让 div 的背景成为具有“包含”属性的 HTML5 视频?【英文标题】:Is it possible to have a div's background be an HTML5 video with the "contain" property? 【发布时间】:2014-10-19 02:04:27 【问题描述】:

我希望将 div 的背景设置为 html5 视频/webm,我想知道它是否有可能具有“包含”属性并保持其纵横比?我不想让视频覆盖整个屏幕,而是让 div 延伸 100% 的宽度和设定的高度。我想要隐藏超出高度阈值的视频部分?

这可能吗?提前致谢。

【问题讨论】:

您说您没有将视频完全覆盖框架,但您所描述的正是如此。但是您无法为视频设置背景,但您可以使用 div 填充video 然后在其上叠加另一个 div。 啊,我的意思是我不希望视频填满整个浏览器窗口 (100% x 100%),而是包含在 div 中(视频充当 div 背景)。包含视频的 div 是 100% 宽度和大约 450px 高度。我希望视频的行为方式与图像具有“包含”属性的图像相同,即在调整大小时剪辑从 div 底部溢出的内容 再次,您不能将视频设置为背景属性,但您可以在视频对象上设置 css 并设置 min-height 和 min-width 属性并溢出隐藏,您应该很好。 【参考方案1】:

来吧:

http://demosthenes.info/blog/777/Create-Fullscreen-HTML5-Page-Background-Video

它不是一个完整的解决方案,因为我还没有找到一种方法来使视频元素尊重其包含的 div 的高度。它似乎也消耗了它下面的所有 div,我现在正在处理它。

【讨论】:

【参考方案2】:
/*===== Start HTML 5 Video DIV Background ===*/

.full-video 
  background: url(image) no-repeat 0 0;
  background-attachment: fixed;
  padding: 0px 0px 0px 0px;
  color: #6a6a6a;


.video 
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;


.video-cover 
  position: relative;
  height: 850px;
  overflow: hidden;


.video-cover video 
  object-fit: cover;
  background-image: url(image) no-repeat 0 0;

<div class="video-cover">
  <video class="video" muted autoplay loop playsinline poster="video/image">
    <source src="video/xxx.mp4"  type="video/mp4">              
    <source src="video/xxx.webm" type="video/webm">
    <source src="video/xxx.ogg"  type="video/ogg">
    Your browser doesn't support HTML5 video tag.
  </video>
</div>

【讨论】:

这是我使用的 css 设置,效果很好。 纯代码答案并不是特别有用。请添加一些关于此代码如何解决问题的描述。

以上是关于是否可以让 div 的背景成为具有“包含”属性的 HTML5 视频?的主要内容,如果未能解决你的问题,请参考以下文章

用jQuery检查一个div是不是有一个具有特定属性的孩子

javascript,获取使用包含属性缩放的背景大小

如果类包含值,则更改背景颜色

<div>标签到底包含哪些属性 各有啥意义?

如何让 emmet 将具有值的属性添加到 div 标签中?

前端如何让照片靠左竖着填充满屏幕