Responsive design 使Fb和twitter小部件具有响应性

Responsive design 使Fb和twitter小部件具有响应性,responsive-design,Responsive Design,如何使Fb和Twitter小部件跨所有设备响应?我试图将iframe宽度设置为100%,但当我在智能手机中查看它时,它会将布局延伸到水平滚动条。youtube视频也是如此 推特!我找到的最简单的解决方案是通过css。编辑.twtr doc类,使其宽度为100% 对于FB(假设你说的是like box),我将第一个宽度更改为auto,第二个宽度(内联css)更改为100% 我将以可口可乐为例 <iframe src="//www.facebook.com/plugins/likebox.ph

如何使Fb和Twitter小部件跨所有设备响应?我试图将iframe宽度设置为100%,但当我在智能手机中查看它时,它会将布局延伸到水平滚动条。youtube视频也是如此

推特!我找到的最简单的解决方案是通过css。编辑.twtr doc类,使其宽度为100%

对于FB(假设你说的是like box),我将第一个宽度更改为auto,第二个宽度(内联css)更改为100% 我将以可口可乐为例

<iframe src="//www.facebook.com/plugins/likebox.php?href=http%3A%2F%2Fwww.facebook.com%2Fcocacola&amp;width=auto&amp;height=395&amp;colorscheme=light&amp;show_faces=false&amp;border_color&amp;stream=true&amp;header=false&amp;appId=176993455739426" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100%; height:395px;" allowTransparency="true"></iframe>

试试:

对于Twitter,请尝试:

步骤1: 下载Twitter的widget js文件并将其放入“YOUR_LOCAL_PATH/js”
步骤2: 修改小部件调用脚本,如下所示: !函数(d,s,id){var js,fjs=d.getElementsByTagName(s)[0]; 如果(!d.getElementById(id)){js=d.createElement;js.id=id;js.src=“YOUR_LOCAL_PATH/js/twitter.widgets.js”;fjs.parentNode.insertBefore(js,fjs);}}(文档,“脚本”,“twitter wjs”); 您应该看到,我已经删除了“p”变量和协议声明,并且指向Twitter小部件js文件的本地副本。
步骤3: 使用类似的方法使widgets.js文件中的代码可读。然后将代码复制到“YOUR_LOCAL_PATH/js/twitter.widgets.js”中
步骤4.1:按照我下面的建议查找和修改:
尺寸:{
默认高度:“600”,
默认宽度:“100”//将其修改为100-类似于100%
缩小宽度:“100”//将其修改为100-类似于100%
最小宽度:“100”//将其修改为100-类似于100%
最小高度:“200”,
宽媒体填充:81,
窄媒体填充:16,
宽介质填充60,
狭窄的\u媒体\u填充\u CL:12},

步骤4.2:按照我下面的建议查找和修改: 从此处开始:.frame.style.minWidth=s.dimensions.minu WIDTH+“px”到此 .frame.style.minWidth=s.dimensions.minu WIDTH+“%”

第五步。恭喜你,你现在有了一个快速响应的twitter小部件!如果他们发布了新版本的小部件,只需重新执行我建议的步骤

Twitter对自己的行为反应相当迅速。但是长宽比呢?它归结为与youtube视频相同的问题。两者都是iFrame

现在我应该相信一些人为youtube制作了这个,但我已经忘记是谁了。很抱歉无论如何,它也被

这就是诀窍。您可以将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控件,内联脚本在Ajax时不会运行

<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>


使用类而不是id#twitter-widget-0,因为如果在网站中添加多个twitter提要,它将只选择第一条tweet并向其中添加css

请提出一个更具体的问题,并给出一个更清晰的例子,说明你正在尝试做什么。Stackoverflow是effort in=effort out:)这解决了这个问题,但是您将使用一个定制的JS,这样,如果Twitter改变了他们的任何方面,您的实现将来可能会中断@Guiamedica Gozum的回答使用了几行CSS,这意味着媒体查询可以完全响应。这对twitter很有效,媒体查询可以使其完全响应。
<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;  
}