3

我试图让一个 HTML5 视频在background: center center fixed; background-size: cover;不使用 JS 的情况下完全像一个元素一样运行(我知道有 JS 库可以做到这一点)。我想出了如何将宽度或高度设置为 100%,具体取决于窗口的纵横比与视频的纵横比相比,使用媒体查询(下面的示例假设您使用的是 16/9 视频)。我现在要做的就是让视频水平或垂直居中。

任何帮助,将不胜感激。

@media screen and (max-aspect-ratio: 16/9) {
  div#fixed video {
    position: absolute;
    height: 100%;
    z-index: -100;
  }
}

@media screen and (min-aspect-ratio: 16/9) {
  div#fixed video {
    position: absolute;
    width: 100%;
    z-index: -100;
  }
}
4

2 回答 2

1

你甚至不需要媒体查询来实现这一点:)

尝试这个:

#fixed {
    position: relative;
    height: 100vh;
    z-index: 0;
}
#fixed video {
    -webkit-transform: translateX(-50%) translateY(-50%);
    -moz-transform: translateX(-50%) translateY(-50%);
    -ms-transform: translateX(-50%) translateY(-50%);
    -o-transform: translateX(-50%) translateY(-50%);
    transform: translateX(-50%) translateY(-50%);
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    z-index: -100;
}
<div id="fixed">
	<video autoplay loop class="bg-video">
		<source src="https://d2v9y0dukr6mq2.cloudfront.net/video/preview/abstract-rainbow_wjpctkdes__PM.mp4" type="video/mp4">
	</video>
</div>

这是一个有效的小提琴示例

希望能帮助到你 :)

于 2015-02-18T02:14:10.903 回答
1
@media screen and (max-aspect-ratio: 16/9) {
  div#fixed video {
    position: absolute;
    height: 100%;
    z-index: -100;
    top: 0;
    bottom: 0;
    margin:auto 0;
  }
}

@media screen and (min-aspect-ratio: 16/9) {
  div#fixed video {
    position: absolute;
    width: 100%;
    z-index: -100;
    text-align: left;
    right: 0;
    left: 0;
    margin:0 auto;
  }
}
于 2012-06-27T14:58:28.343 回答