Как сделать правильный media запрос?
Мне нужно сделать media запрос для адаптации сайта под 1920 px экран 2910 1080.
Сейчас запрос выглядит так:
@media screen and (max-width: 1920px) { } |
@media screen and (max-width: 1920px) { }
И почему-то у человека с 1920 px 2910 1080 отображается некорректно, также есть другие media запросы, которые работают:
@media screen and (min-width: 1440px) { } @media screen and (max-width: 1280px) { } @media screen and (max-width: 1024px) { } |
@media screen and (min-width: 1440px) { } @media screen and (max-width: 1280px) { } @media screen and (max-width: 1024px) { }
Может, дело в них?
Дополнительно:
@media screen and (max-width: 1920px)
Будет работать на вьюпортах меньше или равных 1920
Вам хорошо бы определиться в какую сторону вы двигаетесь от мобилок к десктопам или наоборот (mobile first или desktop first). Хотя бы для конкретного проблемного селектора. В идеале, конечно, для всех в одну, но бывают и исключения.
Приветствую.
Я использую такой формат:
/*Media*/ /* Large desktops and laptops */ @media (min-width: 1080px) and (max-width: 1200px) { /*стили*/ } |
/*Media*/ /* Large desktops and laptops */ @media (min-width: 1080px) and (max-width: 1200px) { /*стили*/ }
Кажется удобным, т.к. сразу видно в каком диапазоне работают стили.
Bootstrap, например, в документации показывает такой вариант:
// X-Small devices (portrait phones, less than 576px) // No media query for `xs` since this is the default in Bootstrap // Small devices (landscape phones, 576px and up) @media (min-width: 576px) { ... } // Medium devices (tablets, 768px and up) @media (min-width: 768px) { ... } // Large devices (desktops, 992px and up) @media (min-width: 992px) { ... } // X-Large devices (large desktops, 1200px and up) @media (min-width: 1200px) { ... } // XX-Large devices (larger desktops, 1400px and up) @media (min-width: 1400px) { ... } |
// X-Small devices (portrait phones, less than 576px) // No media query for `xs` since this is the default in Bootstrap // Small devices (landscape phones, 576px and up) @media (min-width: 576px) { ... } // Medium devices (tablets, 768px and up) @media (min-width: 768px) { ... } // Large devices (desktops, 992px and up) @media (min-width: 992px) { ... } // X-Large devices (large desktops, 1200px and up) @media (min-width: 1200px) { ... } // XX-Large devices (larger desktops, 1400px and up) @media (min-width: 1400px) { ... }
Авторитетным источником в данном вопросе будет: https://developer.mozilla.org/ru/docs/Web/CSS/CSS_...
Старайтесь не мешать между собой media min и max в одном диапазоне, могут быть конфликты по CSS стилям.
Я пользуюсь таким методом:
1920px и ниже – адаптив, desktop first.
2000px и больше – адаптив для широких мониторов и телевизоров.
/* > 2000px */ @media screen and (min-width: 2000px) {} /* < 1920px */ @media screen and (max-width: 1920px) {} |
/* > 2000px */ @media screen and (min-width: 2000px) {} /* < 1920px */ @media screen and (max-width: 1920px) {}
- А в оставшиеся 78 точек делай, браузер, что хочешь )))
- Ankhena, не надо брать breakpoint за золотой стандарт.
Если ширина не затрагивается запросами, значит в этом диапазоне не требуется изменений. - Илья Петров, золотой стандарт - писать все media в одном направлении.
В вашем придуманном примере получается пишем для всех, потом переопределили и вниз и вверх. В итоге "для всех" - это 78 точек. Ну и знаки < и > некорректны, исправьте, пожалуйста.
Если что, да, интервалов может быть много и да они могут быть небольшими, если это требуется для гармоничного отображения. Но, пожалуйста, для одного селектора (ну хотя бы) в одном направлении.
- Ankhena, max-width — от указанного размера и ниже, моя запись обозначает X < 1920px,
где X меньше 1920px.Простое правило для запоминания знаков больше или меньше — представьте, что знак – это клюв птицы, и она открывает клюв в сторону большего числа.
Если мы говорим про стили, то media-запросы – это дополнительные стили к основным.
И параметр в media запросе нужен браузеру, чтобы понять, когда добавлять дополнительный стиль. - Илья Петров,
max-width — от указанного размера и ниже, моя запись обозначает X < 1920px
Вот именно, от указанного размера и ниже, а вовсе не строгое <
Поэтому и говорю: поправьте.
А не про птичек с клювами :)))
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для создания правильного media запроса в CSS, вам необходимо учитывать различные аспекты, такие как размер экрана устройства, ориентацию экрана, плотность пикселей (DPI) и так далее. Media запрос позволяет адаптировать стили вашего сайта под разные устройства и условия просмотра.
Прежде всего, вам нужно определиться с тем, для каких устройств или размеров экрана вы хотите задать стили. Например, если вы хотите изменить стили для устройств с шириной экрана менее 768 пикселей, вы можете использовать следующий media запрос:
@media only screen and (max-width: 768px) { /* Ваши стили здесь */ }
Этот media запрос будет применять стили только для устройств с шириной экрана до 768 пикселей. Вы также можете использовать другие параметры, такие как min-width, orientation (landscape или portrait), max-device-width и другие для более точной настройки стилей.
Кроме того, вы можете комбинировать различные параметры, чтобы создать более сложные media запросы. Например, если вы хотите применить стили только для устройств с шириной экрана от 768 до 1024 пикселей и ориентацией landscape, вы можете использовать следующий media запрос:
@media only screen and (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) { /* Ваши стили здесь */ }
Помните, что правильное использование media запросов поможет вашему сайту быть адаптивным и удобным для пользователей на разных устройствах. Не забывайте также тестировать ваш сайт на различных устройствах, чтобы убедиться, что стили корректно отображаются.