Является ли type = «text / css» необходимым в теге <link>?


192

Мне было интересно, стоит ли использовать <link rel="stylesheet" type="text/css" href=...>поверх <link rel="stylesheet" href=...>. В rel="stylesheet"помечает информация , что это таблица стилей - так на text/cssсамом деле не добавляет ничего, насколько я обеспокоен.

В любом случае, единственным форматом таблицы стилей, используемым HTML, является CSS, так что же text/cssсказать браузеру? Некоторые веб-сайты, кажется, добавляют type="text/css"атрибут ( http://www.jquery.com/ ), а другие - нет ( http://www.youtube.com/ ).

Итак, что такое использование type="text/css"в <link rel="stylesheet">элементе, и нужно , чтобы включить его?


1
Это может быть реализовано , чтобы действовать в качестве запасного варианта для серверов , которые не возвращают правильные MIME-typeна .cssфайлы, но, кажется , это было не всегда необходимо. Я использую это только для согласованности.
drudge

Что-то, с чем я только что столкнулся, не указывайте type = "", иначе IE не загрузит вашу таблицу стилей.
mhenry1384

В настоящее время сайт jquery.com не использует type="text/css", но сайт Stackoverflow все еще использует его.
Марко Демайо

Ответы:


150

Это не требуется для спецификации HTML5, но для более старых версий HTML это необходимо.

HTML 4 W3.org spec

http://www.w3.org/TR/html40/struct/links.html#edef-LINK http://www.w3.org/TR/html40/present/styles.html

Тип обозначает MIME-тип таблицы стилей. Единственное поддерживаемое значение, которое я когда-либо видел, это Text / CSS, и, вероятно, именно поэтому HTML5 отбросил его. Я предполагаю, что у них было это для более ранних версий, чтобы позволить будущие возможности расширения, которые никогда не случались.

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


24
это может потребоваться в спецификации HTML4, но ни один браузер на самом деле не применяет ее.
Спудли

4
ну, есть тип для "image / ico"
maxisam

2
На самом деле, спецификация HTML4.01 не требует typeатрибута.
Все работники необходимы

30

Это не обязательно, нет.

Часть HTML Уровень жизни вы будете заинтересованы в том , элемент , который гласит:link

linkЭлемент должен иметь либо relатрибут или itempropатрибут, но не оба.

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

Для ссылок на внешние ресурсы typeатрибут используется в качестве подсказки для пользовательских агентов ...


Что означает «как подсказка для пользовательских агентов ...»? Что такое "пользовательские агенты"?
ScottyBlades

@ScottyBlades Хороший вопрос! Пользовательский агент - это все, что может действовать от имени пользователя для загрузки (в данном случае) HTML. В большинстве случаев это веб-браузер, но он также может быть терминальным клиентом, таким как curl.
alexmuller

6

HTML4.01 не требует typeатрибута <link>тега. Согласно спецификации, typeатрибут является подсказкой для браузера. Если браузер не поддерживает тип содержимого с подсказкой, он может пропустить его выборку.

type = content-type [CI]

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

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

  • ПРИМЕЧАНИЕ. <link>Относится к <a>определению typeатрибута.

1
Это наиболее полезный ответ => в основном: используйте атрибут type, только если браузер может не поддерживать type =>, бесполезный для стандартных веб-файлов, таких как CSS.
jave.web

4

Насколько я понимаю, это позволяет задавать таблицы стилей в форматах, отличных от text / css.

Хотя это стало доминирующим (и стандартным) форматом для таблиц стилей для (X) HTML-документов, эта спецификация на самом деле достаточно широка, чтобы можно было передавать различные типы MIME, просто стандартные браузеры их не реализуют.


1

Не относится к большинству пользователей, но некоторые системы (по крайней мере, Microsoft SharePoint 2013) будут использовать этот атрибут типа при разработке способов обработки HTML (например, при создании файла подкачки .master).


-1

Нет, это просто MIME-тип, он устарел в HTML, мы можем отказаться от него без какой-либо совместимости браузера.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.