如何让 Fb 和 Twitter 小部件在所有设备上都能响应?我尝试将 iframe 宽度设置为 100%,但是当我在智能手机中查看它时,它会拉伸导致水平滚动条的布局。这也发生在 youtube 视频上。
5 回答
尝试:
#twitter-widget-0{
width: 100% !important;
}
对于推特!我找到的最简单的解决方案是通过 css。将 .twtr-doc 类编辑为 100% 的宽度。
对于 FB(假设你在谈论类似框)我将第一个宽度更改为 auto,第二个宽度(内联 css)更改为 100% 我将使用可口可乐作为示例...
<iframe src="//www.facebook.com/plugins/likebox.php?href=http%3A%2F%2Fwww.facebook.com%2Fcocacola&width=auto&height=395&colorscheme=light&show_faces=false&border_color&stream=true&header=false&appId=176993455739426" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100%; height:395px;" allowTransparency="true"></iframe>
Twitter对它自己的反应相当敏感。但是纵横比呢?它归结为与 youtube 视频相同的问题。两者都是 iframe。
现在我应该感谢一些人为 youtube 提出了这个,但我忘记了是谁。对不起。无论如何,Tod Moto 的 Fluidvids 也使用它。
所以这就是诀窍。您将 youtube 或 twitter 小部件的 iframe 放置在 div(或任何块元素)内。给它这些 CSS 值:
div {
position: relative;
padding-top: SEE BELOW
width: 100%; }
然后将其应用于 iframe:
div iframe {
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 100%; }
在见下文,你应该写下你的纵横比。您可以通过将宽度除以高度并乘以 100% 来计算此值。如果你还没有发现的话,这在 Sass 中是非常简单的。
我的 html 看起来像这样,顺便说一句。twitter javascript 文件不是内联的,因为我 Ajax 小部件和内联脚本在 Ajaxed 时不运行。
<aside>
<div>
<a class="twitter-timeline" height="570" href="https://twitter.com/PartosNL" data-widget-id="520500579978596352">Tweets van @PartosNL</a>
<script src="<?php bloginfo('template_url');?>/js/twitter.js"></script>
<br class="clear">
</div>
</aside>
.twitter-tweet{
width: 100% !important;
}
使用 class 而不是 id #twitter-widget-0 因为如果您在您的网站中添加多个 twitter 提要,它只会选择第一条推文并将 css 添加到其中。
对于推特尝试:
第一步:下载 Twitter 的小部件 js 文件并将其放入“YOUR_LOCAL_PATH/js”
第 2 步:修改小部件调用脚本如下:!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0]; if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="YOUR_LOCAL_PATH/js/twitter.widgets.js";fjs.parentNode.insertBefore(js, fjs);}}(文档,"脚本","twitter-wjs"); 您应该看到我已经删除了“p”变量和协议声明,并且指向了 Twitter 小部件 js 文件的本地副本。
第 3 步:使用类似http://jsbeautifier.org/的内容使 widgets.js 文件中的代码可读。之后将该代码复制到“YOUR_LOCAL_PATH/js/twitter.widgets.js”中
步骤 4.1:查找并修改如下我建议的:
dimensions: {
DEFAULT_HEIGHT: "600",
DEFAULT_WIDTH: "100", // modify this to be 100 - like 100%
NARROW_WIDTH: "100", // modify this to be 100 - like 100%
MIN_WIDTH: "100", // modify this to be 100 - like 100%
MIN_HEIGHT: "200",
WIDE_MEDIA_PADDING: 81,
NARROW_MEDIA_PADDING: 16,
WIDE_MEDIA_PADDING_CL: 60,
NARROW_MEDIA_PADDING_CL: 12 },
步骤 4.2:查找并修改如下我建议的:从这个:.frame.style.minWidth = s.dimensions.MIN_WIDTH + "px" 到这个 .frame.style.minWidth = s.dimensions.MIN_WIDTH + "%"
第 5 步。恭喜,您现在拥有一个响应式 Twitter 小部件!如果他们发布了新版本的小部件,只需重新制作我建议的步骤!