2011-07-08 64 views

回答

3

Facebook已弃用Fan Box(2009年推出),赞成新的Like Box。虽然每个功能都相似,但它们使用不同的JavaScript API。

你仍然可以用你自己的外部CSS编辑customize the appearance of the Fan Box,但目前还不清楚Facebook将持续支持这种能力的时间。

下面是一些示例FBML代码显示了风扇框如何接受外部CSS:

<div id="fb-root"></div> 
<fb:fan 
    profile_id="104818966496" 
    backgroundshow_faces="true" 
    stream="false" 
    header="false" 
    connections="8" 
    css="http://example.com/css/stylesheet.css?1310162522"> 
</fb:fan> 

<script> 
    // Initialize Facebook JavaScript SDK 
    // http://developers.facebook.com/docs/reference/javascript/FB.init 
    window.fbAsyncInit = function() { 
     FB.init({ 
     appId: '136570223089806', 
     xfbml: true 
     }); 
    }; 

    // Asynchronously Load Facebook Fan Box Social Plugin 
    (function() { 
     var e = document.createElement('script'); 
     e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
     e.async = true; 
     document.getElementById('fb-root').appendChild(e); 
    }()); 
</script> 

有些事情要记住:

  • 您的自定义CSS将通过Facebook的内容渲染服务器进行过滤并需要面向公众。 (也就是说,您必须将CSS文件上传/编辑到Web服务器,以测试进行更改时的外观)。
  • 建议在开发过程中将查询字符串追加(并更新)到您的CSS,因为Facebook会大量缓存您的CSS。进行更改后,更新您的查询字符串变量以指示Facebook获取样式表的新副本。

Facebook将为您的所有HTML/CSS/JS元素添加一个使用您的应用程序ID创建的“命名空间”的前缀。通过这样做,Facebook可以确保您的CSS无法操作标准的Facebook元素和布局。

请注意,并非所有的CSS属性和选择器都是允许的,Facebook将从您的CSS中移除许多CSS3规则。

虽然最令人沮丧的是,Facebook似乎删除允许一些供应商的前缀,而不允许其他人。例如,Facebook删除Webkit供应商前缀(-webkit-border-radius),但允许使用Mozilla前缀(-moz-border-radius)。烦!

这意味着圆角,阴影和其他供应商特定的CSS可能不会出现在您的自定义Facebook Fan Box的所有浏览器中。 因此,尽可能地尝试,您可能无法让您的Facebook Fan Box在所有浏览器中看起来都一样。

+1

这刚刚停止工作,Facebook不再将自定义CSS应用于Like Box – Radu