Нужно ли использовать «xmlns» в <html xmlns = ...>, когда страница обслуживается как HTML 4.01? - PullRequest
4 голосов
/ 10 мая 2011

Мне нравится обслуживать страницу как HTML 4.01, потому что XHTML на самом деле не воспринимается как XHTML в некоторых браузерах, но метатеги OpenGraph Facebook требуют:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:og="http://ogp.me/ns#"
      xmlns:fb="http://www.facebook.com/2008/fbml">

, но сDOCTYPE страницы не является XHTML, имеет ли значение, если xmlns есть, и должна ли страница быть превращена в DOCTYPE XHTML вместо этого?

(на самом деле, если страница HTML, xmlnsсбивает с толку, поскольку это не совсем XML, но на странице Facebook не говорится о том, как добавить метатеги на страницу с HTML 4.01)

Ответы [ 3 ]

3 голосов
/ 11 мая 2011

Для HTML 4.01 Строгое:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Для HTML 4.01 Trasitional:

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Материал xmlns, который вы видите в примере с Facebook, - это пространства имен XML, и их цель - дать разработчику возможность включать пользовательскую информацию в документы HTML.

Думайте об этом как о папках в файловой системе.

Так что, когда facebook объявляет:

xmlns:fb="http://www.facebook.com/2008/fbml"

Они определяют «папку», в которой хранятся их пользовательские теги / атрибуты / свойства, поэтому:

<meta property="fb:admins" content="USER_ID"/>

... где важная часть "fb: admins" - это то же самое, что иметь это на жестком диске:

/fb/admins.txt 

, который содержит значение USER_ID.

Так что это просто способ сохранить данные организованными и разделенными.

Надеюсь, это прояснит для вас.

2 голосов
/ 10 мая 2011

Это не будет действительный HTML 4.01, если вы добавите атрибуты xmlns, но, скорее всего, это не повлияет на рендеринг.

Я бы не использовал HTML 4.01 на вашем месте. HTML 5 - это новый стандарт, и вы должны его использовать.

0 голосов
/ 10 мая 2011

Это определения пространства имен XML, которые существуют как способ избежать коллизий в именах элементов XML.

Поскольку это протокол Facebook, именно они определяют пространства имен.

Он имеет«ничего» не имеет отношения к тому, как обслуживается страница.

...