html - 将 youtube 视频包装在静态图像 "frame"中并保持响应式调整大小

标签 html css video youtube fitvids

我有一张空白 Macbook 的下图。

enter image description here

图像是1034‖×‖543。

我想在屏幕的“灰色”区域内插入一个 YouTube 视频。我希望它看起来就像在笔记本电脑屏幕上播放 YouTube 视频一样。

我还希望笔记本电脑图像/youtube 视频能够缩放,以便当网页在平板电脑或移动设备 View 中时,图像和视频缩小以匹配。

我正在尝试使用 fitvid.js 来完成此操作,但运气不佳——我可以让视频适应一个静态大小,但我无法让它在调整大小时仍然完美适应, 它会变形。

下面是我当前的标记:

html:

<div class="col-sm-12">
  <div class="title">
    <h2>What's New</h2>
    <small>ASC Sneak Peak</small>
  </div>
  <div class="macbook-wrapper">
    <iframe width="715" height="402" src="//www.youtube.com/embed/**url**" frameborder="0" allowfullscreen></iframe>
  </div>
</div>

SASS:

.macbook-wrapper{
  background: url('../img/content/home/macbook.png') no-repeat;

  .fluid-width-video-wrapper {
    width: 97.5%;
    background: #000;
  }
}

最佳答案

您可以使用填充和百分比来设置一些技巧,这样您就可以相应地缩放它。基本上,设置一个纯粹基于 % 的容器,带有一个根据容器缩放的绝对位置 iframe。

HTML

<div>
  <iframe></iframe>
</div>

CSS

div {
    position: relative;
    padding-top: 25px;
    padding-bottom: 67.5%;
}
div iframe {
    background: url(http://i.stack.imgur.com/zZNgk.png) center center no-repeat;
    background-size: contain;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

您只需添加 box-sizing: border-box; 和一些 padding 即可在屏幕内定位 iframe。查看 http://jsfiddle.net/41sdho4w/

更进一步 - 这是一个带有容器的版本来帮助控制 max-widthmax-height 而不是依赖 body/viewport http://jsfiddle.net/4g9e3ywy/

关于html - 将 youtube 视频包装在静态图像 "frame"中并保持响应式调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25573562/

相关文章:

html - 尝试实现 Amazon.com 的搜索栏外观

javascript - Cordova播放html5视频

php - 使用 PHP 上传 mp4 文件

html - 应使用哪些 HTML5 视频编解码器?

javascript - 在 Javascript 中从剪贴板读取文件

javascript - JS 中可重用类的多个 $this 属性

javascript - Angular JS - 具有动态数据的条件内联样式

html - 需要 H2 与文本一样宽,但也需要文本对齐 :center

php - 如何在 HTML 水平表中显示 mysql 查询输出

javascript - 将 ajax 数据传递给后端 javascript