Следующие от Adobe документы .
Спецификация медиа-запросов также содержит ключевое слово only
, которое предназначено для скрытия медиа-запросов от старых браузеров. Как и not
, ключевое слово должно находиться в начале объявления. Например:
media="only screen and (min-width: 401px) and (max-width: 600px)"
Браузеры, которые не распознают медиазапросы, ожидают разделенный запятыми список типов медиа, и в спецификации говорится, что они должны усекать каждое значение непосредственно перед первым не буквенно-цифровым символом, который не является дефисом. Итак, старый браузер должен интерпретировать предыдущий пример следующим образом:
media="only"
Поскольку нет такого типа носителя, как только, таблица стилей игнорируется. Точно так же старый браузер должен интерпретировать
media="screen and (min-width: 401px) and (max-width: 600px)"
как
media="screen"
Другими словами, он должен применять правила стиля ко всем экранным устройствам, даже если он не знает, что означают медиазапросы.
К сожалению, IE 6–8 не смог правильно реализовать спецификацию.
Вместо применения стилей ко всем экранным устройствам, он полностью игнорирует таблицу стилей.
Несмотря на это, все же рекомендуется добавлять префиксы к медиа-запросам, только если вы хотите скрыть стили от других, менее распространенных браузеров.
Итак, используя
media="only screen and (min-width: 401px)"
и
media="screen and (min-width: 401px)"
будет иметь тот же эффект в IE6-8: оба препятствуют использованию этих стилей. Однако они все равно будут загружены.
Кроме того, в браузерах, которые поддерживают медиазапросы CSS3, обе версии будут загружать стили, если ширина области просмотра превышает 401px
, а тип мультимедиа - screen.
Я не совсем уверен, для каких браузеров, не поддерживающих медиазапросы CSS3, потребуется only
версия
media="only screen and (min-width: 401px)"
в отличие от
media="screen and (min-width: 401px)"
, чтобы убедиться, что оно не интерпретируется как
media="screen"
Это был бы хороший тест для тех, кто имеет доступ к лаборатории устройств.