我正在尝试创建一个背景为视频的网站。我一直在寻找如何重新创建像Spotify's主页背景这样的东西,但似乎无法让它发挥作用。
我的问题是,我可以通过浏览器或宽度获得高度,但不能同时获得两者。与Spotify网站上的视频不同,它无法随时扩展以适应浏览器。我尝试了很多东西,其中大部分我都记不起来了。我不介意使用JQuery来实现这种效果。
我目前的代码是:
<!DOCTYPE html>
<html>
<head>
<title>VideoBG</title>
<style type="text/css">
#videohome {
position:absolute;
height: 100%;
width: 100%;
top:0;
left:0;
right:0;
bottom:0;
}
</style>
</head>
<body>
<video id="videohome" preload="auto" autoplay="true" loop="loop" muted="" volume="0">
<source src="./homepage.mp4" type="video/mp4" />
</video>
</body>
</html>
答案 0 :(得分:7)
您需要有一个适合屏幕的容器div,然后在视频中添加一个类,将其调整为宽度或高度。
CSS:
.container {
width: 100%;
height: 100%;
position: absolute;
padding:0;
margin:0;
left: 0px;
top: 0px;
z-index: -1000;
overflow:hidden;
}
.videoPlayer {
min-height: 100%;
//min-width:100%; - if fit to width
position:absolute;
bottom:0;
left:0;
}
HTML:
<div class="container"><video class="videoPlayer">Code goes here</video></div>
答案 1 :(得分:2)
老人,但是金色的。一直在努力解决这个问题,但发现纵横比媒体查询可以很好地完成工作。
如果不支持媒体查询,视频仍将覆盖该页面,但无法正确缩放。
如果不支持translateX
,translateY
或@supports
,视频将不会居中。
HTML:
<div class="cover">
<video autoplay loop mute poster="path/to/image.jpg">
<source src="path/to/video.mp4" type="video/mp4" />
<source src="path/to/video.webm" type="video/webm" />
<source src="path/to/video.ogv" type="video/ogg" />
<img src="path/to/image.jpg" alt="" />
</video>
</div>
CSS:
.cover {
bottom: 0;
left: 0;
overflow: hidden;
position: absolute;
right: 0;
top: 0;
z-index: 1;
}
.cover img, .cover video {
display: block;
height: auto;
left: auto;
max-width: none;
min-height: 100%;
min-width: 100%;
right: auto;
position: absolute;
top: 0;
width: auto;
z-index: 1;
}
@supports (transform: translateX(-50%)) {
.cover img, .cover video {
left: 50%;
top: 50%;
transform: translateX(-50%) translateY(-50%);
}
}
@media screen and (min-aspect-ratio: 16/9){/* Make this the same aspect ratio as your video */
.cover img, .cover video {
max-width: 100vw;
min-width: 100vw;
width: 100vw;
}
}
@media screen and (max-aspect-ratio: 16/9){/* Make this the same aspect ratio as your video */
.cover img, .cover video {
height: 100vh;
max-height: 100vh;
min-height: 100vh;
}
}
答案 2 :(得分:1)
在容器中使用object-fit: cover
答案 3 :(得分:0)