【问题标题】:CSS positioning/resizing html5 video backgroundCSS定位/调整html5视频背景
【发布时间】:2016-09-22 17:54:09
【问题描述】:

嘿,所有互联网的巫师, 在过去的几天里,我一直在努力解决这个问题。

我正在尝试包含全屏视频背景,但似乎遇到了障碍。

下面是我想要完成的图像。

我尝试使用视频元素和 iframe。当浏览器窗口调整大小时,我无法让下面的 div 始终嵌套在下面。

非常感谢任何帮助或指示。我得到的最接近的是最小宽度/高度,但它仍然留下一个差距......

我最终得到的是第二张图片中显示的内容。视频随浏览器调整大小,下方有空隙

【问题讨论】:

    标签: javascript jquery css html resize


    【解决方案1】:

    为防止出现问题,您需要这样做:

    css:

    .div1{ background-color: red; height: 100%; position: relative; overflow: hidden;}
    .div2{ background-color: black; height: 100%;}
    video{ position: absolute; height: 100%; width: 100%; margin: 0; padding: 0; top: 0; bottom:0; right: 0; left: 0;}
    

    并将您的视频放入 div1:

    <div class="div1">
         <video autoplay>...</video>
    </div>
    <div class="div2">
    </div>
    

    它不允许视频元素在溢出时显示。并且 div1 始终是 height:100% 而 div2 始终是 height:100%。

    如果您想将视频放入 div1 中添加

     object-fit: cover;
    

    到视频标签。

    IE 不支持对象匹配

    【讨论】:

    • 哇,那个 object-fit:cover 完全符合我的要求...... x-browser 对它的支持如何?另外,如果您不介意我问我如何在其他所有内容之上添加宽度约束?比方说,如果我将浏览器的大小调整为特定宽度,则视频被隐藏并且占位符 img 显示为该 div 的 bg img
    • Object-fit 并不能单独解决您的问题。您需要包装视频元素并隐藏溢出。和往常一样 IE! IE 不支持对象匹配,Edge 正在构建中。在此处查看浏览器兼容性:caniuse.com/#feat=object-fit 如果您想更改每个浏览器宽度或高度中的元素样式,只需使用“媒体”。在这里您可以看到一些示例:css-tricks.com/logic-in-media-queries 为您的示例,如果您想在浏览器宽度 600 上更改视频和 .div1 样式,只需编写 @media (max-width: 600px) { video { display: none; } .div1{ 背景颜色:红色;} }
    • 知道了...它的效果非常好。如果可以的话,还有一件事......我如何将海报 img 添加到 div1 以随视口缩放?我需要显示视频的第一帧,但 jpeg 是 1920x1080,它不会随窗口缩放。
    • 创建 div 并将图像设置为 background-image 然后 background-size: cover; IE9+ 支持。
    【解决方案2】:

    我不确定这是否可行,但是 您是否尝试过删除 width: 100% 而只保留 height: 100% ?

    如果您可以显示代码,我也许可以提供更好的建议:p

    编辑: 既然你希望高度是屏幕高度和宽度可以或多或少,我会说,试试

        min-height: 100%;
        width: auto;
        height: auto;
    

    这应该可以解决问题

    新编辑:

    body{
      overflow:hidden;
    }
    #wrapper {
      width: 100%;
      height: 100%;
    }
    
    .videoInsert {
        min-height: 100%;
        min-width: 100%;
        height: auto;
        width: auto;
        position: absolute;
        left: 0%;
        top: 0%;
    }
    video{
          display: inline-block;
        vertical-align: baseline;
          object-fit: fill;
    }
    

    【讨论】:

    • #wrapper {width: 100%; height: 100%;}
    • .videoInsert { background-size: cover; height: 100%; left: 0; min-height: auto; min-width: auto; overflow: hidden; position: absolute; top: 0; width: inherit; z-index: -100; }
    • &lt;div class="wrapper"&gt; &lt;video autoplay loop muted class="videoInsert"&gt; &lt;source src="motion/intro.mp4" type="video/mp4"&gt; Your browser does not support the video tag. &lt;/video&gt; &lt;/div&gt;
    • 您是否尝试过使用 min-width: 100%;最小高度:100%;
    • 用这个:.wrapper {width: 100%;height: 100%;} .videoInsert { background-size: cover;高度:100%;左:0;最小高度:100%;最小宽度:100%;溢出:隐藏;位置:绝对;顶部:0;宽度:100%; z 指数:-100;我得到了一个不错的调整大小,但宽度显然没有填满视口
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 2015-03-11
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    相关资源
    最近更新 更多