Подтвердить что ты не робот

Вам действительно нужно указать атрибут type?

Возможный дубликат:
Зачем писать < script type = "text/javascript" > когда тип mime задается сервером?

Я прочитал Погрузиться в HTML5 некоторое время назад и снова прочитал его семантическую главу совсем недавно. Я отметил, что он рекомендует не использовать атрибуты type="..." на script и style, потому что:

  • Тип MIME должен быть отправлен сервером,
  • JS и CSS являются значениями по умолчанию,
  • Браузеры не заботятся.

Тем не менее, я вижу, что по-прежнему общепринятой практикой является включение атрибутов type (или, horror, language) на теги script и style. Предполагая, что сервер настроен правильно для отправки правильных типов MIME, есть ли причины использовать их, кроме явного?

EDIT: это явно о HTML5, а не XHTML.

4b9b3361

Ответ 1

Большинство людей используются для HTML 4/XHTML и раньше, где для этих элементов требуется атрибут type.

Что касается HTML 5, они действительно являются необязательными, и спецификация дает значение по умолчанию, в зависимости от элемента.

Для тега script это значение по умолчанию равно text/javascript:

Если язык не описан в "text/javascript", тогда должен присутствовать атрибут type

Для тега style это значение по умолчанию равно text/css:

Значение по умолчанию для атрибута type, которое используется, если атрибут отсутствует, является "text/css".

Итак, не нужно, как вы сказали. Однако поддержка браузера и настройки сервера не всегда можно опираться - явная идея является хорошей идеей, поскольку она позволяет избежать таких проблем.

И, конечно, не все браузеры поддерживают HTML 5 - те, которые не будут использовать более раннюю версию, где требуется атрибут, и ваш javascript/css не может быть проанализирован в таких браузерах, а это значит, что у вас нет CSS или javascript в старых браузерах, когда простым решением для обратной совместимости является добавление атрибута.

Ответ 2

Атрибут типа может не требоваться для HTML5, но он необходим для других типов HTML Doc, таких как HTML 4.01 Strict. Я бы также сказал, что все, что делает код/​​документ более четким для разработчика, действительно только хорошо.

Если это означает, что явный тип используемого типа script или тип стиля, я бы использовал его.

Ответ 3

Это нехорошо. В XHTML атрибут type строго необходим. Хотя браузеры могут быть снисходительны, нет никаких оснований нарушать соглашение.

Ответ 4

Атрибут type действительно не требуется для HTML5, но в том числе он не нарушает проверку, поэтому вы можете конвертировать в HTML5 из ​​HTML + nbsp; 4 или XHTML 1 и по-прежнему иметь <script> и <style> проверить.

<link> теги также не нуждаются в атрибуте type (выделено мной):

Атрибут type дает тип MIME связанного ресурса. Это чисто консультативный. Значение должно быть действительным MIME.

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

Пользовательские агенты не должны учитывать тип атрибут авторитетный - на выбор ресурсов, пользовательских агентов не должен использовать атрибут type для определить его фактический тип. Только фактический тип (как определено в следующем пункт) используется для определения использовать ли ресурс, а не вышеупомянутый предполагаемый тип.

Ответ 5

Если вы не используете тип, который он не будет проверять

Ответ 6

В соответствии с w3 это требуется.

Даже если новые браузеры смогут обойтись без указания тега (используя значение по умолчанию), все же лучше оставить его для обратной совместимости со старыми браузерами.