如何使Facebook评论框宽度100%? 2014

时间:2014-03-07 06:34:52

标签: jquery html css facebook

同样的问题http://stackoverflow.com/questions/10862256/how-to-make-facebook-comment-box-width-100 我尝试了所有的答案,但它不再起作用了。看起来Facebook改变了一些东西。

10 个答案:

答案 0 :(得分:35)

这个是一个facebook bug,请在这里查看: https://developers.facebook.com/x/bugs/256568534516879/

唯一可用的解决方法是使用javascript。

稍后编辑:错误修正:您必须写:data-width="100%"

  

插件的宽度。像素值或文字100%   流体宽度。 Comments插件的移动版本忽略了   宽度参数,而是具有100%的流体宽度。   https://developers.facebook.com/docs/plugins/comments

答案 1 :(得分:3)

 $(".fb-comments").attr("data-width", $(".fb-comments").parent().width());
        $(window).on('resize', function () {
            resizeiframe();
        });

    function resizeiframe() {
        var src = $('.fb-comments iframe').attr('src').split('width='),
            width = $(".fb-comments").parent().width();

        $('.fb-comments iframe').attr('src', src[0] + 'width=' + width);
    }

Jquery解决方法,

来源:https://developers.facebook.com/x/bugs/256568534516879/ 评论人:Milap Bhojak

答案 2 :(得分:3)

参考https://developers.facebook.com/support/bugs/173395380238318/

Facebook评论插件,他们会不断更新新内容,但有时会导致新错误。

如此简单的CSS就能解决宽度问题。

/*Fb Comments Width Fix*/
.fb_iframe_widget_fluid_desktop, .fb_iframe_widget_fluid_desktop span, .fb_iframe_widget_fluid_desktop iframe {
            max-width: 100% !important;
            width: 100% !important;
 }

注意:确保使用!important。如果不重要,它将无法正常工作。

如果您认为有帮助,请点击“上投票”按钮。谢谢

答案 3 :(得分:1)

Facebook在.pluginSkinLight>上添加了另一个550px的宽度。格

将此添加到您的CSS .pluginSkinLight> div {width:100%!important;}

答案 4 :(得分:1)

我已经发布了一个解决方案来回答同一个问题:https://stackoverflow.com/a/22328835/2544386

问题是在iframe中,Facebook可以更改CSS,类,添加固定宽度等。 但是如果你在Facebook解析之前通过操纵HTML中的标记以聪明的方式使用JS,我相信如果Facebook最终改变某些东西,它确实会减少再次被破坏的可能性。

答案 5 :(得分:1)

facebook更改了fb-comments插件,现在你可以使用data-width =“100%”

你不需要任何样式或js代码。

    <div class="fb-comments" data-href="http://example.com" 
data-width="100%" data-numposts="5" data-colorscheme="light"></div>

答案 6 :(得分:1)

如果您正在寻找最简单的方法而无需编程。没有并发症。

您只需像往常一样(使用Facebook的代码框),然后在浏览器上打开Inspect Element(右键单击页面上的任何元素并选择此选项),然后单击类似框<iframe></iframe>和将其复制到您的代码中(仅限iframe!)。它的工作方式与其他代码完全相同。

现在删除iframe的宽度,或在其上写上width:100%

就像这样:

<iframe name="f15e6cf8a8" width="1000px" height="1000px" frameborder="0" allowtransparency="true" scrolling="no" title="fb:like_box Facebook Social Plugin" src="http://www.facebook.com/yourentirepage" style="border:none;visibility:visible;height:541px" class=""></iframe>

它适用于我。

答案 7 :(得分:0)

一个简单的JS解决方法

1)在FB评论div中添加id(&#34; fb_chat&#34;在此示例中):

<div id="fb_chat" class="fb-comments" data-href="http://your_url" data-numposts="30" data-colorscheme="light"></div>

2)使用此JS块(将&#39; chat_body&#39;替换为您的评论父容器):

<script type="text/javascript"> var fb_chat = document.getElementById('fb_chat'); var container_width = document.getElementById('chat_body').clientWidth * 0.985; var attr = document.createAttribute('data-width'); attr.nodeValue = container_width.toString(); fb_chat.attributes.setNamedItem(attr); </script>

答案 8 :(得分:0)

添加data-width="100%"会使评论的宽度达到100%,但仍然不像预期的那样完全流畅。它们将填充容器,但仅在加载时,并且在调整窗口大小时不会调整大小。为此,请将此添加到您的css:

.fb_iframe_widget_fluid span, iframe.fb_ltr { width: 100% !important; }

答案 9 :(得分:0)

为解决此问题,请从<div class="fb-comments"...删除“数据宽度”

FB会自动放置100%

或删除data-mobile="auto"