Поддерживает ли большинство браузеров CSS для таких тегов, как fb: like? - PullRequest
2 голосов
/ 01 апреля 2011

Большинство браузеров поддерживают такие теги, как

<fb:like ... >    </fb:like>

(это тег Facebook XFBML). Является ли namespace:tagname на самом деле частью стандарта именования тегов?

Кроме того, как насчет поддержки CSS? Редко я делаю это прямо как

fb:like { font-size: 11px }

но для людей, которые имеют опыт работы с ним, работает ли он с большинством современных браузеров? (IE 6 тоже?) Есть ли какой-нибудь случай, когда он не работает или даже вылетает из браузера? Вероятно, некоторые из мобильных браузеров не так хорошо оснащены, чтобы справиться с этим.

Ответы [ 5 ]

5 голосов
/ 01 апреля 2011

Обработка в браузере тэгов пространства имен формы: тэг очень отличается в IE от других браузеров и определенно не стандартизирован.Однако, кажется, что в вашем конкретном случае стилизация элемента довольно проста.Использование:

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

Протестировано и работает в IE6, IE7, Firefox 3.6 и Chrome 10.

4 голосов
/ 01 апреля 2011

Является ли namespace:tagname на самом деле частью стандарта именования тегов?

Да.Синтаксис namespace:type определен в грамматике XML 1.0 и как таковой принят такими языками, как XHTML и XFBML.

Кроме того, как насчет поддержки CSS?

Оператор пространства имен для селекторов CSS3 - |, определенный в этой спецификации .

Так что в качестве быстрого примера можно написать его следующим образом:

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

: символизирует псевдокласс (и псевдоэлемент в CSS2), который явно fb:like не является.

Обратите внимание, что это не будет работать в IE <9, что нене распознает XML-сериализованные страницы и, следовательно, не реализует пространства имен в CSS.Если вам нужна лучшая поддержка браузера, вы можете рассматривать <code>: как часть имени элемента и использовать fb\:like в качестве селектора, , как говорит Алохчи .

1 голос
/ 01 апреля 2011

Большинство страниц не поддерживают теги fb: like ... Им требуется либо iframe, который загружает поддерживающую страницу из Facebook, которая включает необходимые метатеги, пространство имен и т. Д., Чтобы понять это. ..

... или они просят разработчика включить эти метатеги, а также необходимые ссылки xfbml, чтобы их страницы анализировали это пространство имен.

Пространства имен хороши и имеют смысл разбирать ML. Весь HTML действительно ML с пространством имен. Facebook хочет, чтобы вы включили их пространство имен. Тем не менее, они понимают, что вы, возможно, не желаете этого, поэтому попросите вас вместо этого включить javascript, чтобы обойти эти проблемы «пространства имен», и просто проанализируйте соответствующие теги. Слава Facebook для работы вокруг этого.

Теперь вы заинтересованы в оформлении этих тегов. Большинство браузеров рассматривают неизвестные пространства имен как «display: inline». Вы можете применить к нему «атрибуты стиля», но они не будут распознаны. Вы также должны будете следовать правилам Facebook для стилизации этих тегов fb: like (то есть, что их javascript готов проанализировать как приемлемый атрибут - вы можете найти это здесь ). Лучше всего сделать? Либо оберните этот fb: like «div» и стилем, которые div для целей позиционирования, либо работайте с определенными атрибутами Facebook для их ML-разбора javascript.

Будут ли браузеры поддерживать пространство имен Facebook в будущем? Что ж, учитывая, сколько времени понадобилось HTML5, чтобы НАКОНЕЦ быть признанным, вероятно, нет. Либо Facebook создаст свой собственный браузер (и кто знает, даже Google создал Chrome за 6 итераций / 2 года, и он конкурирует, если не превосходит IE6 / 7, с точки зрения уровня проникновения, если не всех других причин).

Или Facebook может считаться вполне достойным пространством имен в будущих браузерах ... Сомнительно, но, эй, учитывая, что FB / TW - значки, используемые ВЕЗДЕ (включая Starcraft 2!). Так что ты знаешь ... есть надежда.

А пока работайте в своей системе.

0 голосов
/ 23 мая 2013

Хотя это старый пост, я думаю, стоит отметить, что шаблон <namespace:tagname> - это то, что Facebook использует в своем расширении XHP. XHP - это собственное PHP-расширение Facebook , которое позволяет PHP интерпретировать узлы XML как объекты PHP, по сути, превращая узлы XML в простые узлы HTML.

Наши собственные теги <fb:like>, вероятно, все еще обрабатываютсяот javascript, но я предполагаю, что XHP используется где-то на их конце API.

0 голосов
/ 01 апреля 2011

Такие теги существуют только в рамках XFBML (т. Е. Для их работы необходимо включить библиотеки Facebook JavaScript)

CSS не поддерживается так, как вы просите.

fb:like { font-size: 11px }

Код CSS выше не будет работать. Но вы можете назначить CSS-класс этому тегу стандартным способом.

...