Существует множество способов решения этой проблемы, и решение может быть разным в зависимости от обстоятельств. Например, существует ли существующий сайт, который вы реинжинирируете, чтобы реагировать или вы начинаете с нуля?
НАЧИНАЕТСЯ С ЦАПИЛЬКА
Если начинать с нуля, одним из методов является создание всех базовых стилей ВНЕ любого медиазапроса, чтобы эти стили могли просматриваться любым устройством (особенно теми устройствами, которые не поддерживают медиазапросы).
Базовые стили могут включать только цвета, шрифты и т. Д., Или это может быть все, кроме макета.
Затем медиа-запросы используются для добавления различных макетов поверх основных стилей.
МИН или МИН И МАКС
Следующий вопрос: как вы будете обрабатывать различные медиа-запросы ...
Позволите ли вы наносить их друг на друга - в этом случае вы можете начать с малого и наращивать - используя только минимальную ширину.
Например:
@media only screen and (min-width: 600px)
ИЛИ вы можете установить их в серии скобок, чтобы стили одного размера не взаимодействовали с другим размером.
Например:
@media only screen and (min-width: 600px) and (max-width: 800px)
Опять же, нет правильного или неправильного - у обоих есть сильные и слабые стороны. Первый вариант позволяет использовать стили, которые проходят через все ширины. Второй вариант позволяет вам полностью контролировать стили, которые появляются на определенной ширине - без необходимости иметь дело с каскадом.
Работа с IE
Существует множество способов работы со старыми версиями IE, включая.
- разрешить IE видеть только основные стили
- размещать медиазапросы в отдельных файлах CSS и ссылаться на эти файлы с помощью медиазапросов ... затем также ссылаться на выбор этих файлов (например, только широкоэкранные файлы CSS) через условные комментарии.
- Используйте какое-либо решение JS, такое как response.js или другое, чтобы заставить IE понимать медиазапросы.
НТН