Есть разница, по крайней мере, с точки зрения W3C.
Элемент <style>
представляет блок правил CSS, которые применяются к текущему документу. Однако внешние таблицы стилей фактически рассматриваются как целые документы , связанные с текущей страницей, и пользовательские агенты могут по своему усмотрению игнорировать такие документы в зависимости от атрибутов type
и media
ссылки. Например:
<link rel="stylesheet" type="text/css" media="screen" href="screen.css" />
<link rel="stylesheet" type="text/css" media="print" href="print.css" />
В этой ситуации пользовательские агенты обычно следуют только по одной из ссылок: либо screen
(для нормального рендеринга), либо print
(для, ну, в общем, печати). Идея состояла в том, чтобы сохранить пропускную способность, загружая только соответствующий ресурс, вместо того, чтобы извлекать все данные и фильтровать их по типу мультимедиа позже.
Это упомянуто в спецификации:
Когда элемент LINK
связывает внешнюю таблицу стилей с документом,
Атрибут type
указывает язык таблицы стилей и media
Атрибут указывает предполагаемый носитель визуализации или медиа. пользователь
агенты могут сэкономить время, извлекая из сети только те стили
листы, которые относятся к текущему устройству.