大多数浏览器是否支持标签的CSS,例如fb:like?

时间:2011-04-01 02:32:21

标签: html css fbml xfbml

大多数浏览器都支持

等标签
<fb:like ... >    </fb:like>

(这是一个Facebook XFBML标签)。 namespace:tagname实际上是命名标签标准的一部分吗?

另外,CSS支持怎么样?我很少直接设置它的样式

fb:like { font-size: 11px }

但对于有经验的人来说,它是否适用于大多数现代浏览器? (IE 6也是?)是否有任何不起作用甚至崩溃的情况?可能有些移动浏览器不能很好地处理这个问题。

5 个答案:

答案 0 :(得分:5)

表单命名空间的标签的浏览器处理:标记名在IE中与其他浏览器非常不同,并且绝对不是标准化的。但是,似乎在您的特定情况下,元素的样式非常简单。使用:

fb\:like { font-size: 11px }

在IE6,IE7,Firefox 3.6和Chrome 10中经过测试和使用。

答案 1 :(得分:4)

  

namespace:tagname实际上是命名标签标准的一部分吗?

是。 namespace:type语法在XML 1.0语法中定义,因此被XHTML和XFBML等语言采用。

  

另外,CSS支持怎么样?

CSS3选择器的名称空间运算符为|,定义为in this spec

作为一个简单的例子,人们可能会这样设计:

@namespace fb url(http://www.facebook.com/2008/fbml);
fb|like { font-size: 11px; }

:表示伪类(和CSS2中的伪元素),显然fb:like不是。

请注意,这不适用于IE&lt; 9,它不识别XML序列化页面,因此不在CSS中实现名称空间。如果您想获得更好的浏览器支持,可以将:视为元素名称的一部分,并使用fb\:like作为选择器as Alohci says

答案 2 :(得分:1)

大多数网页不支持支持fb:like标签......他们需要一个iframe,它从Facebook加载一个支持页面,其中包含所需的元标记,命名空间等,以便了解它...

...或者他们要求开发人员包含这些元标记以及必要的xfbml链接,以使其页面解析此命名空间。

命名空间很好,有意义解析ML。所有HTML都是带有命名空间的ML。 Facebook希望您包含他们的名称空间。但是,他们知道你可能不太愿意,所以请你改为包含javascript来解决这些“命名空间”问题并解析相应的标签。感谢Facebook解决这个问题。

现在,您对这些标签的样式感兴趣。大多数浏览器将未知名称空间视为“display:inline”。您可以对其应用“样式属性”,但它们不会被识别。你要么必须遵循Facebook的规则来设置这些fb:像标签一样(即他们的javascript愿意解析为可接受的属性 - 你可以找到here)。最好的办法?包装这个fb:就像一个“div”和用于定位目的div的样式,或者使用Facebook为其javascript解析ML定义的属性。

将来浏览器是否会支持Facebook名称空间?好吧,考虑到HTML5最终被识别需要多长时间,可能不会。 Facebook将创建自己的浏览器(谁知道,即使谷歌在6次迭代/ 2年内创建了Chrome,如果没有各种其他原因,如果不是BEATS IE6 / 7就可以与竞争对手竞争)。

或Facebook在未来的浏览器中可能被认为是一个非常有价值的命名空间...令人怀疑但是嘿,考虑FB / TW是在任何地方使用的图标(包括星际争霸2!)。所以你知道......有希望。

与此同时,在他们的系统内工作。

答案 3 :(得分:0)

虽然这是一篇旧文章,但我认为值得注意的是,<namespace:tagname>模式是Facebook在其XHP扩展中使用的模式。 XHP is Facebooks own PHP extension,它使PHP能够将XML节点解释为PHP对象,实质上将XML节点转换为简单的HTML节点。

我们自己的<fb:like>标签可能仍然由javascript处理,但我猜测XHP正在其API末端的某个地方使用。

答案 4 :(得分:-1)

标签仅存在于XFBML框架内(即您需要包含Facebook JavaScript库才能使其工作)

您提出的方式没有CSS支持。

fb:like { font-size: 11px }

上面的CSS代码不起作用。但是你可以用标准的方式将CSS类分配给这个标签。