alhames.ru
Меня вот лично волнует весьма спорный вопрос касательно использования тех или иных атрибутов, которые являлись чуть ли не обязательными в xhml и стали ничего не значащими в html5.
Начнем по порядку:
1. Doctype: использование <!DOCTYPE html> является вполне валидным, но с каким типом ассоциируют его старые браузеры, которые ничего не знали о html5?
2. Классический шаблон тега html ранее у меня представлял вид <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">. Сейчас я стал использовать нечто вроде: <html lang="ru" xmlns:og="http://ogp.me/ns#"> - namespace для xhtml больше не требуется, а объявление языка свелось к указанию в атрибуте lang. Но на самом деле приоритетной настройкой является язык, возвращаемый в заголовках ответа сервера, а т.к. почти всегда он уже возвращает ru (что впринципе можно проконтролировать), то есть ли вообще смысл использовать этот атрибут?
Ну а namespace для OpenGraph - это обязательная приблуда для валидной оптимизации под соц. сети.
3. Не парные теги - в xhtml их нужно было закрывать ( например, <img /> ) и я по привычки всегда их закрываю. Но так ли это нужно теперь?
4. Устаревшее объявление кодировки - <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> - теперь сведено к минимуму: <meta charset="UTF-8" />.
Это объясняется тем, что для 100% понимания кодировки страницы браузером верстальщики ВСЕГДА использовали указание кодировки - и потому этот тег решили сократить. Что же касается mime-type, то на своей практики я не помню ни одного случая, чтобы требовалось указать что-то отличное от text/html.
Опять жешь, приоритетными параметрами являются параметры сервера, и я взял себе в привычку всегда вручную отправлять нужный mime-type в заданной кодировке.
Собственно вопрос: а чтоже будет со старыми браузерами? Они ведь не поймут это сокращение. Да и нужно ли оно вообще, если в заголовках итак все есть?
5. Указание mime-type в link и sсript: <link rel="stylesheet" type="text/css" href="style.css" /> или <sсript type="text/javasсript" src="jquery-1.7.1.min.js"></sсriрt> - насколько важен атрибут type?
В рекомендациях встретил что он устарел и его лучше опускать, но в более старых рекомендациях его рекомендовали использовать всегда, дабы браузер не запутался с тем что именно он выполняет.
Кроме того некоторые расширения - например, шаблонизатор на JQuery, используют специфические mime-type: <sсript id="movieTemplate" type="text/x-jquery-tmpl">
Вот как-то так)
Начнем по порядку:
1. Doctype: использование <!DOCTYPE html> является вполне валидным, но с каким типом ассоциируют его старые браузеры, которые ничего не знали о html5?
2. Классический шаблон тега html ранее у меня представлял вид <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">. Сейчас я стал использовать нечто вроде: <html lang="ru" xmlns:og="http://ogp.me/ns#"> - namespace для xhtml больше не требуется, а объявление языка свелось к указанию в атрибуте lang. Но на самом деле приоритетной настройкой является язык, возвращаемый в заголовках ответа сервера, а т.к. почти всегда он уже возвращает ru (что впринципе можно проконтролировать), то есть ли вообще смысл использовать этот атрибут?
Ну а namespace для OpenGraph - это обязательная приблуда для валидной оптимизации под соц. сети.
3. Не парные теги - в xhtml их нужно было закрывать ( например, <img /> ) и я по привычки всегда их закрываю. Но так ли это нужно теперь?
4. Устаревшее объявление кодировки - <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> - теперь сведено к минимуму: <meta charset="UTF-8" />.
Это объясняется тем, что для 100% понимания кодировки страницы браузером верстальщики ВСЕГДА использовали указание кодировки - и потому этот тег решили сократить. Что же касается mime-type, то на своей практики я не помню ни одного случая, чтобы требовалось указать что-то отличное от text/html.
Опять жешь, приоритетными параметрами являются параметры сервера, и я взял себе в привычку всегда вручную отправлять нужный mime-type в заданной кодировке.
Собственно вопрос: а чтоже будет со старыми браузерами? Они ведь не поймут это сокращение. Да и нужно ли оно вообще, если в заголовках итак все есть?
5. Указание mime-type в link и sсript: <link rel="stylesheet" type="text/css" href="style.css" /> или <sсript type="text/javasсript" src="jquery-1.7.1.min.js"></sсriрt> - насколько важен атрибут type?
В рекомендациях встретил что он устарел и его лучше опускать, но в более старых рекомендациях его рекомендовали использовать всегда, дабы браузер не запутался с тем что именно он выполняет.
Кроме того некоторые расширения - например, шаблонизатор на JQuery, используют специфические mime-type: <sсript id="movieTemplate" type="text/x-jquery-tmpl">
Вот как-то так)
Старые браузеры - это Opera 9, FF 3.6, IE 7..
Верстать отдельно под IE6 никто ведь и не собирается, просто лишь хочу уточнить нюансы, чтобы потом не жалеть о сделанном выборе.
2. А для чего ты его использовал? Это вообще вроде для браузеров придумано, по идее должно руководить национальными особенностями отображения текста, на память - кавычки в разных нацстандартах разные, больше ничего в голову не приходит
3. Не обязательно, но я также закрываю, HTML5 подразумевает совместимость с XHTML 1.1, а также и обратно, любой валидный HTML 4.01 и XHTML 1.1 будет корректно обрабатываться следующим стандарту HTML5 обработчиком, так что HTML5 это стандарт обработки всего что напридумывали до сегодняшнего дня, а не свод жёстких правил как нужно писать код, он даёт все возможные варианты для инструментария верстальщика. В черновике примеры самые разнообразные, атрибуты там можно использовать как угодно.
Для тегов в черновике на этот случай написано:
Then, if the element is one of the void elements, or if the element is a foreign element, then there (прим. перед закрывающим тег символом >) may be a single U+002F SOLIDUS character (/). This character has no effect on void elements, but on foreign elements it marks the start tag as self-closing.
Void elements: area, base, br, col, command, embed, hr, img, input, keygen, link, meta, param, source, track, wbr
4. Старые браузеры прочитают Content-Type заголовок от сервера, как всегда это и делали УПД: с момента принятия стандарта HTTP/1.0, это произошло в 1996 году... так что будем считать что то, что было до 1996 года браузерами не было))
5. В html5 опционально, по умолчанию в браузерах должен включаться JS обработчик, в черновике HTML5 написано: The type attribute gives the language of the sсript or format of the data. If the attribute is present, its value must be a valid MIME type. The charset parameter must not be specified. The default, which is used if the attribute is absent, is "text/javasсript".
Но тут явное противоречие, потому что MIME тип text/javasсript считается устаревшим с 2006 года, вместо него должен использоваться application/javasсript www.rfc-editor.org/rfc/rfc4329.txt
Да нормально себя ведут. Кроме IE конечно )
habrahabr.ru/post/142075/
А для чего ты его использовал?
На моей практике был случай когда указанный язык влиял на вывод даты.
По-умолчанию ру-браузер говорит:
Т.е. если зайти с англ. версии браузера, то в поддерживаемых языках мы "ru" не обнаружим (не могу гарантировать что сейчас так, но когда смотрел - была проблема именно в этом).
Соответственно и дата форматировалась на "en-us" лад.
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Так это он серверу говорит в рамках запроса
В общем в региональные стандарты входят: краткие, длинные даты-время, первый день недели, разделитель дробных и группы разрядов, кавычки, денежные единицы и пр.
Как отображать браузер должен спросить у системы, так что отображение будет зависеть скорее от настроек системы, чем от браузера, хотя вероятно браузер может и самостоятельно решать этот вопрос.