Приёмы адаптивной вёрстки под различные масштабы и плотность пикселей?

Ссылка скопирована
2 ответов

Вёрстка под 1920px на обычном ПК fullhd-мониторе смотрится как на макете. Стоит открыть на ноутбуке (разрешение то же, масштаб в системе установлен на 110%), либо же маке - все элементы начинают выглядеть громадными, сайт не имеет свободных полей по краям.

Вьюпорт установлен как

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

Интересует, какие распространены практики, чтобы такого не было, и сайт на всех настольных устройствах смотрелся адекватно? Сам пока попробовал такой вариант: перегнать абсолютно все размеры из px в rem (шрифты, размеры блоков, px в медиа-запросах и т.д.), затем меняю размер шрифта корневого элемента через:

@media (-webkit-min-device-pixel-ratio: 1.1), (min-resolution: 105dpi) { 	html{ 		font-size: 14px; 	} } @media (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { 	html{ 		font-size: 12px; 	} } @media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) { 	html{ 		font-size: 11px; 	} } @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { 	html{ 		font-size: 8px; 	} }

@media (-webkit-min-device-pixel-ratio: 1.1), (min-resolution: 105dpi) { html{ font-size: 14px; } } @media (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) { html{ font-size: 12px; } } @media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) { html{ font-size: 11px; } } @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { html{ font-size: 8px; } }

Подход выше решил проблему на десктопах, но испортил картинку на мобильных. Возможно, нужно добавить (min-width: ***), чтобы отсечь эти правила от планшетов/мобильных?

Дополнительно:

Скорее всего неудачно написаны media и остальные правила. И в результате просто что-то вывалилось из контейнеров.
Ретина не влияет на размер шрифта. Для неё нужно готовить только отдельные картинки в 2х или 3х.

110% при исходных 1920 = ~1745
Т.е. на ноутбуке будет отображаться точно также, как если вы выставите в адаптивном режиме эту ширину.
Вот и проверяйте, что там ломается на такой ширине (и на соседних тоже).

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Антон С. Ответ

Для создания адаптивной вёрстки, которая будет хорошо отображаться на различных устройствах с разными масштабами и плотностью пикселей, следует использовать следующие приёмы:

1. Использование относительных единиц измерения, таких как проценты (%) или em. Например, вместо задания ширины блока в пикселях, лучше использовать проценты относительно ширины родительского элемента.

.container {
    width: 80%;
    margin: 0 auto;
}

.container { width: 80%; margin: 0 auto; }

2. Использование медиазапросов для адаптивности на различных устройствах. Медиазапросы позволяют применять разные стили в зависимости от размера экрана устройства. Например, можно изменить количество столбцов в сетке или размер шрифта.

@media screen and (max-width: 768px) {
    .column {
        width: 100%;
    }
}

@media screen and (max-width: 768px) { .column { width: 100%; } }

3. Использование векторной графики вместо растровой. Векторные изображения масштабируются без потери качества и хорошо подходят для адаптивного дизайна.

4. Тестирование на различных устройствах и браузерах. Важно проверить, как ваш сайт выглядит и работает на разных устройствах с разными разрешениями экранов.

5. Использование flexbox или grid для создания гибких и адаптивных сеток. Эти CSS-модели позволяют легко управлять распределением элементов на странице в зависимости от размера экрана.

Надеюсь, эти советы помогут вам создать адаптивный дизайн, который будет отлично выглядеть на любых устройствах с разной плотностью пикселей.

Другие ответы (1) Ответить на вопрос
Игорь Волков

Для создания адаптивной вёрстки под различные масштабы и плотности пикселей существует несколько подходов, которые позволяют вашему сайту отображаться корректно на разных устройствах.

1. Использование медиа-запросов: это позволяет задавать различные стили в зависимости от размера экрана устройства. Например, вы можете указать стили для экранов с шириной менее 768px, 992px и т.д.

@media screen and (max-width: 768px) {
  /* стили для устройств с шириной экрана до 768px */
}
 
@media screen and (min-width: 769px) and (max-width: 992px) {
  /* стили для устройств с шириной экрана от 769px до 992px */
}

@media screen and (max-width: 768px) { /* стили для устройств с шириной экрана до 768px */ } @media screen and (min-width: 769px) and (max-width: 992px) { /* стили для устройств с шириной экрана от 769px до 992px */ }

2. Использование относительных единиц измерения: вместо фиксированных значений (px) лучше использовать относительные единицы измерения, такие как %, em или rem. Например, вместо задания ширины блока в px, можно использовать %:

.container {
  width: 80%;
}

.container { width: 80%; }

3. Использование гибкой сетки: для создания адаптивного дизайна можно использовать гибкую сетку, основанную на колонках. Это позволяет элементам на странице автоматически изменять свои размеры и расположение в зависимости от размера экрана.

4. Использование viewport meta tag: для корректного отображения на мобильных устройствах важно правильно настроить viewport meta tag. Например, вы можете добавить следующий тег в раздел head вашего HTML документа:

 

Эти приемы помогут создать адаптивный дизайн, который будет отлично выглядеть на устройствах с разными размерами экранов и плотностью пикселей.

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно