看起来这不再起作用了。也许 Facebook 不再尊重“css”属性?这仍然适用于任何人吗?
1 回答
Facebook 已弃用Fan Box(2009 年推出),转而使用新的Like Box。虽然每个功能都相似,但它们使用不同的 JavaScript API。
您仍然可以使用自己的外部 CSS自定义 Fan Box 的外观,但目前尚不清楚 Facebook 将继续支持该功能多久。
下面是一些示例 FBML 代码,展示了 Fan Box 如何接受外部 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 将使用您的应用程序 ID 创建的“命名空间”为您的所有 HTML/CSS/JS 元素添加前缀。通过这样做,Facebook 确保您的 CSS 无法操纵标准的 Facebook 元素和布局。
请注意,并非所有 CSS 属性和选择器都是允许的,Facebook 将从您的 CSS 中删除许多 CSS3 规则。
但最令人沮丧的是,Facebook 似乎删除了允许某些供应商前缀而不允许其他供应商前缀。例如,Facebook 删除了 Webkit 供应商前缀 ( -webkit-border-radius
),但允许使用 Mozilla 前缀 ( -moz-border-radius
)。恼人的!
这意味着圆角、阴影和其他供应商特定的 CSS 可能不会出现在您的自定义 Facebook 粉丝盒的所有浏览器中。所以,尽你所能,你可能无法让你的 Facebook 粉丝盒在所有浏览器中看起来都一样。