欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

CSS如何让iframe实现自适应高度的效果

程序员文章站 2022-03-28 08:05:45
...
如今越来越多的人使用手机浏览网页,因此网站的响应能力越来越重要。在手机上测试网站时,尝试了很多次才弄清楚为什么我的视频没有达到我的预期,直到发现了一个很棒的CSS技巧,可以让iframe实现自适应高度。接下来就和大家分享iframe动态实现自定义高度的方法,感兴趣的小伙伴可以参考借鉴一下。

iframe自适应高度

出于演示目的,本文将使用视频嵌入我们的iframe。首先,访问视频网址,点击视频下的“分享”,然后点击“嵌入”,具体代码如下:

<iframe width="560" height="315" src="https://www.youtube.com/embed/dQw4w9WgXcQ" 
frameborder="0" gesture="media" allow="encrypted-media" allowfullscreen></iframe>

接下来,我们需要删除width =“560”height =“315”,因为这里是设置iframe的大小。由于我们需要自己设置尺寸,因此我们不需要这样做。

使用CSS

之后,我们需要将iframe放在另一个html元素的<div>中,这是非常重要的,因为这个元素将调整你的iframe大小。然后将CSS类添加到包装的元素中,将一个类添加到iframe,如下所示。

<div class="resp-container">
    <iframe class="resp-iframe" src="https://www.youtube.com/embed/dQw4w9WgXcQ" gesture="media"  allow="encrypted-media" allowfullscreen></iframe>
</div>

使用以下样式定义包装类:

.resp-container {
    position: relative;
    overflow: hidden;
    padding-top: 56.25%;
}

position: relative和iframe的位置在这里非常重要。position: relative以便稍后我们可以将iframe与包装元素相关联。这是因为在CSS中,position: absolute基于最接近的非静态父元素定位元素。

overflow: hidden 是否隐藏任何可能放在容器外面的元素。

padding-top: 56.25%这就是关键所在。在CSS中,padding-top属性可以设置百分比,这使我们的iframe保持正确的比例。通过使用百分比,它将根据元素的宽度计算要使用的填充。在我们的示例中,我们希望保持56.26%的比率,也可以使用其他比率。

按如下方式定义iframe类:

.resp-iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

position: absolute;这将为iframe提供相对于包装器的位置,并将其放置在包装器的填充上。

top: 0并left: 0用于将iframe定位在容器的中心。

width: 100%并且height: 100%使IFRAME采取所有包装的空间。

完成后,你应该得到一个响应的iframe。

总结:在本文中,我们已经看到了可以让iframe实现自适应高度的技巧。正如您所看到的,它实际上非常简单,希望这篇文章可以给你节省数小时的尝试时间。

【相关教程推荐】

1、CSS教程

2、<iframe>是什么?html中iframe标签的用法详解

3、CSS在线手册

以上就是CSS如何让iframe实现自适应高度的效果的详细内容,更多请关注其它相关文章!