如何使WordPress主题iFrame具有响应性

时间:2021-01-31 作者:sahan

我目前正在开发一个主题,在我的主题中,youtube视频嵌入和其他视频嵌入并没有真正响应。我找到了很多关于如何使用插件使iframe响应的帖子。但我需要创建我的主题响应视频嵌入默认情况下没有任何插件。

特别是在youtube嵌入中,背景图像被放大和裁剪。这和youtube上的不一样。

有没有办法让iframes在没有任何插件的情况下响应?

1 个回复
SO网友:Fahad smile Academy Pakistan

经过研究,我发现this article 最终得到了下面的解决方案。

<div style="position: relative; padding-bottom: 56.25%; padding-top: 25px; height: 0;">
    <iframe style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" 
        src="http://slither.io/" width="100%" height="100%" frameborder="0" 
        scrolling="no" seamless="seamless" allowfullscreen="allowfullscreen">
    </iframe>
</div>
此代码的作用是将div的宽度设置为100%,然后通过设置

padding-bottom: 56.25%;
将包装div的位置设置为相对,将iframe的位置设置为绝对,在这里也起着重要的作用。

现在,div始终响应父容器,并始终将分辨率保持在16:9。

您可以通过更改"padding-bottom: 56.25%" 达到您想要的比率(注意56.25/100 == 9/16).

如果你想让你的代码更漂亮,你可以向你的网站添加一个自定义的CST(通过改变主题的代码文件或添加一个自定义文本小部件),如下所示

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

<div class="responsiveWrapper">
    <iframe src="http://slither.io/" frameborder="0" 
        scrolling="no" seamless="seamless" allowfullscreen="allowfullscreen">
    </iframe>
</div>
来源:
https://hexadix.com/tag/slither-io/

相关推荐

Responsive Images

是否有本机功能可以根据屏幕分辨率显示帖子缩略图或图库图像的正确响应图像大小?通常我使用:1、自定义图像大小:function customImageSetup () { add_theme_support( \'post-thumbnails\' ); add_image_size(\'grid_1 mini square\', 60, 60, TRUE); add_image_size(\'grid_2\', 160); add_image_size(\'