gpt4 book ai didi

javascript - 在 css3 网站上居中响应式视频背景

转载 作者:行者123 更新时间:2023-11-28 07:59:02 25 4
gpt4 key购买 nike

我正在尝试将网站上的视频背景居中。

1920x1080 大小上一切正常,但在较小的设备上,视频不居中。

我该如何解决这个问题?

我的 index.html:

    <!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>video web</title>
<link rel="stylesheet" href="css/style.css" />
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

<!--[if lt IE 9]>
<script>
document.createElement('video');
</script>
<![endif]-->

<script src="js/jquery.js"></script>
<script src="js/scripts.js"></script>
</head>
<body>

<div id="container">
<a href="mailto:website@videowebsite.com">
<video autoplay loop poster="images/intro.jpg" id="bgvid" align="middle">
<!--<source src="video/izba_intro.webm" type="video/webm">-->
<source src="video/izba_intro.mp4" type="video/mp4">
</video>
</a>
</div>

</body>
</html>

我的 CSS:

video#bgvid {
position: absolute; right: 0; bottom: 0; left:0; top: 0; z-index: -100;
background: url(../images/intro.jpg) center no-repeat;
width: 100%; height: 100%; margin: auto;
}

video { display: block; display: block;
margin: 0 auto;}

video#bgvid { transition: 1s opacity; }

.stopfade { opacity: .5; }

/* mobile */

@media screen and (max-device-width: 800px) {
body {
background: url(../images/intro.jpg) #000 no-repeat center center fixed;
}

#bgvid {
display: none;
}
}

如何解决此问题以获得响应式视频背景?是否可以在不编写 javascript 的情况下在纯 css3 中获得此结果?

感谢您的帮助。

最佳答案

我只是复制粘贴另一个问题的答案,这里的关键是保持居中。


免责声明: 我只试验了大约 9 个月的 Web 开发(或任何类型的代码/脚本),所以不要认为我的解决方案没有错误。请参阅脚注了解已知问题。

我一直面临着同样的问题,我想我完全理解你在寻找什么。

基本上,无论屏幕宽度/高度如何,视频的水平和垂直边缘都不应进入视口(viewport),应保留宽高比,视频应垂直和水平居中。

1920x800 分辨率的视频示例:

*(缺少 CSS vendor 前缀)


HTML

<div class="bg-vid-container">
<video id="bg-vid" class="cover" poster="lib/img/bg-vid.poster.png" autoplay loop>
<source src="lib/vid/bg-vid.mp4" type="video/mp4"/>
</video>
</div>

CSS

.bg-vid-container {
width: 100%;
height: 100%;
overflow: hidden;
display: flex;
justify-content: center;
align-items: center;
}

video.cover {
width: 100%;
min-width: 240vh;
height: auto;
}

justify-contentalign-items 设置为居中的 flex box 模型将保持视频垂直和水平居中,并且 overflow: hidden; 停止不需要的滚动。

在这种情况下,min-width 设置为 240vh( View 高度单位,其中 1vh=1% 的窗口高度)。这是通过将纵横比缩放到 100 的高度来计算的(我使用 Andrew Hedges 的 Aspect Ratio Calculator )。

1920x800 缩放到 240x100。

这将防止视频的高度下降到 100% 以下,但如果浏览器窗口变得那么宽,它仍然允许它的宽度为 100%,只需在那个点增加它的高度。

根据 caniuse.com , flex box模型和vh单元都有很好的支持。

这在移动设备上(目前)无法正常工作,因为在某些设备上,键盘向上滑动会调整窗口大小。我正在为此开发一个 jQuery/CSS 媒体查询解决方案。如果它们按预期工作,我会更新结果。 iOS 7 对 vh 的支持也有点粗略。

关于javascript - 在 css3 网站上居中响应式视频背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29914371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com