2012-01-24 3 views
42

Я хочу отобразить один и тот же набор стилей CSS для людей, печатающих страницу (media = print) и людей, просматривающих мобильный телефон. Есть ли способ объединить CSS-запросы?Объединение запросов в формате CSS

Что-то вроде

@media only print or @media only screen and (max-device-width: 480px) { 
    #container { 
    width: 480px; 
    } 
} 
+0

Связанный: http://stackoverflow.com/questions/7668301/is-it-possible-to-embed -media-queries-in-media-queries –

ответ

56

разделив их запятой:

@media only print, only screen and (max-device-width: 480px) 

See the spec, в частности, (подчеркивание добавлено) Пример VI:

Несколько запросов средств массовой информации могут быть объединены в виде списка медиа-запросов. A список мультимедийных запросов, разделенных запятыми. Если один или несколько сообщений запросов в списке, разделенном запятыми, являются true, весь список равен true, и в противном случае false. В синтаксисе медиа-запросов запятая выражает логическое ИЛИ, а ключевое слово 'и' выражает логическое И.

Я сомневаюсь, что второй only нужен, так что вы, вероятно, можно сделать следующее:

@media only print, screen and (max-device-width: 480px) 
+0

Оператор «only» используется для применения стиля только в том случае, если весь запрос соответствует, что полезно для предотвращения использования более старых браузеров выбранными стилями. Поэтому просто используйте запятую ... например: если вы хотите применить стиль, когда устройство находится в ландшафтном режиме: @media (min-width: 700px) и (ориентация: пейзаж) {...} – Aruna

3

От https://developer.mozilla.org/en/CSS/Media_queries

Вы можете объединить несколько запросов СМИ в список разделенных запятыми; если соответствует любому из медиа-запросов в списке, применяется связанный стиль . Это эквивалент логической операции «или».

Вам просто нужно удалить второй @media и добавить некоторые скобки.

Смежные вопросы