Чи потрібен type = "text / css" у тезі <посилання>?


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файли, але, здається , це було не завжди необхідно. Я використовую його просто заради консистенції.
друге

Щось я щойно зіткнувся, не вказуйте 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 = тип вмісту [CI]

Цей атрибут дає дорадчу підказку щодо типу вмісту вмісту, доступного за цільовою адресою посилання. Це дозволяє користувачам-агентам вибирати використовувати механізм резервного копіювання, а не отримувати вміст, якщо їм рекомендують отримувати контент у типі контенту, який вони не підтримують.

Автори, які використовують цей атрибут, беруть на себе відповідальність за управління ризиком, який може стати невідповідним вмісту, доступному за цільовою адресою посилання.

  • ПРИМІТКА: <link>відкладає <a>визначення для typeатрибута.

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

4

Я розумію, що це дозволяє дозволити таблицю стилів у форматах, відмінних від тексту / css.

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


1

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


-1

Ні, це просто означає MIME-тип, він застарілий у HTML, ми можемо відмовитися від нього без будь-якої сумісності браузера.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.