当前位置: 首页 > 知识库问答 >
问题:

使用HTML5 CSS3强制iframe YouTube视频居中调整并完全覆盖背景屏幕

郭易安
2023-03-14

如何强制HTML5iframeYouTube视频居中,使用CSS3 HTML Java覆盖全屏窗口背景?

例如“paypal.it”主页背景或“unity3d.com/5”顶级视频,都有iframe youtube视频。重新调整窗口大小时,iframe覆盖整个屏幕(缩放),并覆盖所有宽度和高度。它会重新调整大小,保持100%最小宽度缩放高度或100%最小高度缩放宽度。

如何使用iframeHTML5和CSS3实现这种效果?

代码示例HTML5

<div class="video" style="opacity: 1;">

    <iframe src="http://www.youtube.com/embed/AddHereVideoId?autoplay=1&amp;html5=1" frameborder="0" style="height: 720px;">
     </iframe>

</div>

代码CSS3超文本标记语言最终Java帮助将不胜感激。

共有3个答案

卜季萌
2023-03-14

我认为这就是你想要实现的目标:

.video-wrapper {position: relative; padding-bottom: 56.25%; /* 16:9 */  padding-top: 25px;}
.video-wrapper iframe {position: absolute; top: 0; left: 0; width: 100%; height: 100%;}

<div class="video-wrapper">
  <iframe src="http://www.youtube.com/embed/AddHereVideoId?autoplay=1&amp;html5=1" frameborder="0" allowfullscreen></iframe>
</div>

这将为您提供一个视频,该视频将填充它所在的容器,并将自动缩放高度。

我最初在这里找到了这个解决方案:https://css-tricks.com/NetMag/FluidWidthVideo/Article-FluidWidthVideo.php

姬国安
2023-03-14

对于真正的全屏解决方案,可以通过以下方式实现:

超文本标记语言

<div class="video-background">
    <div class="video-foreground">
      <iframe src="https://www.youtube.com/embed/I4agXcHLySs?controls=0&showinfo=0&rel=0&autoplay=1&loop=1&mute=1" frameborder="0" allowfullscreen></iframe>
    </div>
  </div>

CSS

* { box-sizing: border-box; }
.video-background {
  background: #000;
  position: fixed;
  top: 0; right: 0; bottom: 0; left: 0;
  z-index: -99;
}
.video-foreground,
.video-background iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

@media (min-aspect-ratio: 16/9) {
  .video-foreground { height: 300%; top: -100%; }
}
@media (max-aspect-ratio: 16/9) {
  .video-foreground { width: 300%; left: -100%; }
}
@media all and (max-width: 600px) {
.vid-info { width: 50%; padding: .5rem; }
.vid-info h1 { margin-bottom: .2rem; }
}
@media all and (max-width: 500px) {
.vid-info .acronym { display: none; }
}

它并不完美,例如它不能很好地处理容器的极端长宽比,但在大多数情况下做得很好。下面是一个工作示例:

https://codepen.io/hnrchrdl/pen/YzPwjBV

编辑:检查奥利弗的答案,他似乎有这个解决方案的改进版本。

卫建义
2023-03-14

TL:工作小提琴博士

作为对@Hinrich答案的更新/改进,我创建了一个只适用于CSS的定标器,它适用于所有纵横比,甚至极端情况。iframe使用vwvh设置,并使用CSStransform属性(相对于元素而非父元素的偏移)设置偏移,而不是过度补偿宽度以适应大多数屏幕尺寸。

大多数浏览器(IE9和所有常青浏览器AFAIK)支持vwvh单元,以及转换,所以这应该适用于几乎所有不需要JavaScript的浏览器。

.video-background {
  position: relative;
  overflow: hidden;
  width: 100vw;
  height: 100vh;
}

.video-background iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100vw;
  height: 100vh;
  transform: translate(-50%, -50%);
}

@media (min-aspect-ratio: 16/9) {
  .video-background iframe {
    /* height = 100 * (9 / 16) = 56.25 */
    height: 56.25vw;
  }
}
@media (max-aspect-ratio: 16/9) {
  .video-background iframe {
    /* width = 100 / (9 / 16) = 177.777777 */
    width: 177.78vh;
  }
}
<div class="video-background">
  <iframe src="https://www.youtube.com/embed/biWk-QLWY7U?controls=0&showinfo=0&rel=0&autoplay=1&loop=1&mute=1" frameborder="0" allowfullscreen></iframe>
</div>

对于那些使用CSS变量的用户,您也可以这样做(fiddle),它允许您任意重用多个类名的大小:

:root {
  --video-width: 100vw;
  --video-height: 100vh;
}
@media (min-aspect-ratio: 16/9) {
  :root {
    --video-height: 56.25vw;
  }
}
@media (max-aspect-ratio: 16/9) {
  :root {
    --video-width: 177.78vh;
  }
}

.video-background {
  position: relative;
  overflow: hidden;
  width: 100vw;
  height: 100vh;
}
.video-background iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  width: var(--video-width);
  height: var(--video-height);
  transform: translate(-50%, -50%);
}
 类似资料:
  • 问题内容: 您如何强制HTML5 YouTube视频居中对齐,并最终使用CSS3 HTML覆盖全屏窗口背景? 例如“ paypal.it ”首页背景或“ unity3d.com/5 ”顶部视频,作为iframe youtube视频。所述盖全屏(变焦)和覆盖所有的宽度和高度,当重新大小的窗口。它调整大小以保持100%最小宽度缩放高度或100%最小高度缩放宽度。 使用HTML5和CSS3 如何实现这种

  • 本文向大家介绍如何使用CSS创建全屏视频背景?,包括了如何使用CSS创建全屏视频背景?的使用技巧和注意事项,需要的朋友参考一下 要使用CSS创建全屏视频背景,代码如下- 示例 输出结果 上面的代码将产生以下输出-

  • 本文向大家介绍jQuery实现视频作为全屏幕背景,包括了jQuery实现视频作为全屏幕背景的使用技巧和注意事项,需要的朋友参考一下 先上效果图 完整代码如下 小伙伴们记得要使用支持html5的浏览器来查看本特效哦。

  • 我正在构建一个聊天应用程序,当我向用户发送一个图像时,图像并没有覆盖我给出的背景,而是给出了顶部和底部的有线填充。如何解决这个问题。我给出的填充是每边7dp,这里是我的代码

  • 问题内容: 我有一个。当用户悬停div时,我想用rgba颜色()覆盖背景图像。 我想知道是否有一个一格解决方案(即没有多个div,一个用于图像,一个用于颜色,等等)。 我尝试了多种方法: 而这个CSS: 我看到的唯一选择是制作另一个具有覆盖层的图像,使用JavaScript预加载然后使用。但是,我想要一个仅CSS的解决方案(更整洁;更少的HTTP请求;更少的硬盘)。有没有? 问题答案: Peter

  • 这里的是带有白色背景的2px x 2px png,就是这样。 这个ffmpeg命令产生一个非常小的(文件大小)视频,它只是一个白色背景。 谁能解释一下我如何可以覆盖的图像作为一个延时视频在白色背景上使用FFMPEG?