Перейти к содержимому

Как адаптировать сайт под разные разрешения

  • автор:

Оптимизация сайта под разные разрешения экрана

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

Все выровнил, как пологается т.е сделал прилепающий футер и если высота экрана не меньше 800 пикселей, то масштабирование происходит на ура, но переходим на ноутбук диагональ которого 15. Появляется скролл-принял решение уменьшить картинки и подгружать их через CSS3

@media all and (max-width: 800px) 

и тут должен идти другой стиль для данного разрешения. Вопрос: как мне в CSS можно в тэг загнуть другую картинку, ту, что поменьше масштабом? (кажется, это адаптивная верстка называется)

Как оптимизировать сайт под разные разрешения экрана?

Здравствуйте!
Я создал сайт со своим дизайном и попросил друзей открыть сайт и у многих у кого разрешение больше или меньше моего у них сайт расходился по швам или сжимался. Как решить эту проблему?

  • Вопрос задан более трёх лет назад
  • 27722 просмотра

Комментировать
Решения вопроса 0
Ответы на вопрос 5
Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать

bboytiwst

С самого начала использовать Bootstrap, Foundation и т.п и тогда никаких проблем с разрешениями экранов не будет (если всё грамотно делать).

Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать
Верстаю, фронтэндю =)
Сменить друзей. или вариант по-добрее — найти нормального верстальщика =)
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

aNation

Junior front-end developer

По гуглите про адаптивную вёрстку , а также про @media в css. Это вам поможет, но работки у вас прибавится=) Удачи

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

Инженер и вэб-дизайнер, рисую.

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

Media queries CSS как АДАПТИРОВАТЬ сайт

 МОБИЛЬНАЯ ВЕРСИЯ горизонтального меню | Адаптируем меню на чистом CSS

CSS3 Медиа-запросы (Media queries CSS), позволяют реализовать как адаптивный веб-дизайн так и всякого рода оформление. В данном материале по свешенным Media queries мы реализуем пример как делаются адаптивные сайты.

See the Pen aVRZxO by Denis (@Dwstroy) on CodePen.

Из видео вы узнаете:

  • что такое Media queries и его составляющие элементы;
  • как формируется медиа запросы;
  • рассмотрим практически пример адаптивного дизайна сайта.

CSS3 медиа запросы или (media queries) – это определенный набор стилей и логических выражений, которые позволяют применять различные стили в зависимости от выполнения каких то дополнительных условий.

Используются для проверки ширины и высоты окна браузера, а также ширины и высоты экрана устройства, проверки его ориентации (альбомная или портретная) и многое другое.

Медиа запрос состоит

@media screen and (max-width: 480px) < h1 < font-size: 25px; >>

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

Типы носителя

В се запросы начинаются с правила @madia , далее идет условие, в котором пишем тип носителя (screen) , он позволяет получить точную информацию, на каком устройстве открыта данная страница. Помимо этого типа имеются и другие носители как print , all и speech .

Типы носителей включают в себя

  • all – Подходит для всех видов устройств. Это значение используется по умолчанию.
  • print – Просмотр на экране страничек в режиме предварительного просмотра печати.
  • screen – Просмотр на экране цветных компьютерных мониторах.
  • speech — Речевые синтезаторы, а также программы для воспроизведения текста вслух. Сюда, например, можно отнести речевые браузеры.

В CSS2.1 имелись несколько дополнительных типов, но они приняты устаревшими и в Media Queries 4 не задействованы.

Устаревшие типы носителей:

  • braille — Устройства, основанные на системе Брайля, которые предназначены для чтения слепыми людьми.
  • embossed — Принтеры, использующие для печати систему Брайля.
  • handheld — Смартфоны и аналогичные им аппараты.
  • projection – Проекторы.
  • tty — Устройства с фиксированным размером символов (телетайпы, терминалы, устройства с ограничениями дисплея).
  • tv – Телевизоры.

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

Логические операторы

З атем идут логические операторы, при помощи которых можно писать дополнительные условия, если это необходимо.

К примеру, and , эквивалентно «И» , и в этом случае если одно из условий будет не истиной значить и все выражение, является ложью.

Следующий оператор «запитая» , которая эквивалентна «ИЛИ» , и в данном случае если одно из условий верное, значит выражение является истиной.

Оператор not отрицание, а only позволяет скрыть стиль от всех браузерах, которые не поддерживают данное условие.

Логические операторы:

  • and – Связывает друг с другом разные условия (эквивалентно «и»);
  • not – Позволяет сработать медиа запросу в противоположном случае (эквивалентно «отрицание»);
  • only – Скрывает стили для браузера, которые не поддерживают данные условия;
  • , — Запятая работает по аналои с логическим оператором or (эквивалентно «или»);

Условие медиа запроса

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

Самые распространенные условия это максимальная и минимальная ширина max-width min-widt

Прописав ( max-width: 480px ), сам стиль в нутрии скобок будет применен в том случае, когда ширина экрана менее 480 пикселей.

Именно на таких примерах базируется адаптивная верстка, когда нам нужно применить стили под определенные расширения экраны мобильного устройства и все это делается через CSS (media queries).

  • width min-width max-width – ширина;
  • height min-height max-height – высота;
  • device-width min-device-width max-device-width – ширина на устройстве;
  • device-height min-device-height max-device-height orientation — высота на устройстве;
  • aspect-ratio min-aspect-ratio max-aspect-ratio – соотношение сторон;
  • device-aspect-ratio min-device-aspect-ratio max-device-aspect-ratio — соотношение сторон на устройстве;
  • resolution min-resolution max-resolution – разрешение экрана (количество пикселей);
  • color min-color max-color – количество бит на каждые из цветных компонентов устройства вывода;
  • color-index min-color-index max-color-index – количество записей в таблице подставноки цветов;
  • monochrome min-monochrome max-monochrome – количество битов на пиксель монохромного устройства;
  • scan grid – сетка сканирования;

Описываем основную структуру в HTML и CSS

Теперь рассмотрим, как это выглядит в действительности на примере создания простенького каркаса сайта.

Создаем пять блоков, шапка сайта header , верхнее меню top_menu , левый сайт бар sideLeft , область для контента content и подвал footer .

Затем определим для них стили

Для header назначим свой цвет, укажем ширину в 100%, высоту в 200 пик. и закруглим углы.

.header

Верхнему меню назначим, свой цвет, ширину в 100%, сделаем отступ сверху в 5 пик., высоту в 50 пик.

.top_menu

Сайт бару, прописываем свои стили и прижмем его к левому краю:

.sideLeft

Далее для области под контент пишем свои стили:

.content

И завершающий блок это футер, делаем его на всю ширину в своем цвете:

.footer

Из-за того что sideLeft и content являются плавающими элементами за счет float , нужно сбросить обтекание этих блоков при помощи clear:both; .

Создадим класс и вставим дополнительный блок с этим классом:

.clear

У нас получился такого рода резиновый шаблон сайта, условно разделенный на блоки.

Подключаем CSS media queris

Для наглядной адаптации, сделаем шаблон фиксированной ширины, обернем все наши блоки в обертку, назначим обертке ширину в 980 пик. и отцентрируем по середине экрана.

.wrapper

Затем для всех медиа запросов создадим отдельный файл media-queries.css , который подключим после основного стиля.

Размер экрана меньше 992px

Открываем файл media-queries.css на редактирование, и напишем свое условие для дестопных экранов.

Начинаем с правила @media , скрываем стиле для браузеров которые их не поддерживают only , затем пишем носитель screen и логический оператор and « И », далее условие максимально ширины в 992 пик. то есть если страничка будет меньше данной ширины тогда применим наши стили.

Затем, в фигурных скобках описываем стили для данного расширения:

/* Medium Devices, Desktops */ @media only screen and (max-width : 992px)

Ширину обертки уменьшим на 750 пик.

.wrapper

Поменяем у блоков цвет, а у footer немного уменьшим высоту:

.wrapper < width: 750px; >.header < background: #a1ece5; >.top_menu < background: #64f1eb; >.sideLeft < background: #80e47e; >.content < background: #f0f1ef; >.footer < background: #9ea424; height: 45px; >>

Размер экрана меньше 768px

Затем опишем медеа запрос для средних экранов, таких как планшеты. Я скопирую предыдущий стили, заменю максимальную ширину на 768 пик. и в нем опишу стили для данного расширения экрана.

/* Small Devices, Tablets */ @media only screen and (max-width : 768px)

Обертку уменьшаем до 450 пик.

.wrapper

У header поменяем цвет, его высоту, и сделаем радиус в 3 пик.

.header

Тоже самое проделаем с top_menu

.top_menu

Левый сайт бар, меняем цвет, делаем по всей ширине, уменьшаем отступ до 4 пик. убираем обтекание.

.sideLeft

Для наглядности добавим в сайт бар дополнительные блоки и оформим их надлежащим образом.

Убираем высоту .sideLeft

Для блока под контент, меняем цвет, делаем ширину в 100%, отступ в 4 пик, уменьшаем высоту и убираем обтекание.

.content

Затем footer немного уменьшим по высоте, цвет и отступ немного подкорректируем:

.footer

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

Затем опишем общие стили, и скроем их:

.top_menu < background: #87c5ff; width: 100%; margin-top: 5px; height: 50px; position: relative; >.knopka < display: none; width:32px; height: 21px; top: 2px; left: 6px; background: #6d6e6d; border-radius: 2px; position: absolute; >.lan

Размер экрана меньше 480px

Затем опишем стили под маленькие расширения экранов которые подходят под мобильные устройства.

/* Extra Small Devices, Phones */ @media only screen and (max-width : 480px)

Делаем обертку в 320 пик.

.wrapper

У остальных блоков поменяем цвет.

.header < background: #3dfff2; >.top_menu < background: #328e8d; >.sideLeft < background: #91b399; >.content < background: #f2f4f2; >.footer < background: #6d6e6d; >>

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

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

Подключаем Media Queries Javascript

Медио запросы не поддерживаются браузером Internet Explorer 8 и более ранних версий, для них нужно подключить дополнительный Javascript файл css3-mediaqueries.js .

Ссылка на скачивания — архив файлов с урока

CSS Адаптация под мобильные устройства

Я показал базовые принципы адаптивного дизайна, но есть и другие методы которые во много раз упрощают данную работу. Следите за нашим сайтом и обязательно о них узнаете.

Как адаптировать сайт под разные разрешения

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

Евгений Кучерявый

Евгений Кучерявый

Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.

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

Но чаще всего можно заметить, что сайты плохо адаптированы под разные мониторы и разрешения. Например, вот как выглядит «ВКонтакте» на FullHD-мониторе:

Шрифт очень маленький, а контент размещается только на небольшой части экрана. Чтобы комфортно пользоваться им, нужно менять масштаб страницы:

Встроенных настроек для этого нет, в отличие, например, от Telegram:

Такая адаптация — что-то вроде кибертолерантности. Мы должны заботиться об удобстве посетителей наших сайтов, какими бы устройствами, мониторами и браузерами (только не Internet Explorer) они ни пользовались. Поэтому в этой статье мы расскажем, как адаптировать сайт под разные разрешения.

За основу возьмём сайт из статьи про добавление тёмной темы . Читать её не обязательно, но там подробнее объясняется часть с PHP-скриптами. Также вы можете посмотреть исходный код этого сайта на GitHub.

Создаём адаптивные стили

Прежде всего нужно быть уверенным, что ваш сайт не сломается, если пользователь изменит разрешение на 1 пиксель (как это бывает в MS Word). Для этого везде, где только можно, размеры нужно указывать в процентах.

Также при создании сайта полезно помещать его в оболочку (wrapper): она растягивается на весь экран, а сам сайт будет масштабироваться относительно оболочки.

Тут ширина блока с текстом составляет 80% страницы. Если бы не это ограничение, чтение мелкого шрифта с больших мониторов превратилось бы в разминку шеи:

Также вы можете указать максимальную ширину в пикселях:

Создаём стили под отдельные разрешения

Как и в случае с тёмной темой, можно подготовить несколько файлов стилей, каждый из которых будет содержать разные размеры для элементов страницы. Начнём со стиля для средних мониторов — normal.css:

Обратите внимание, что блок с текстом для небольших экранов стал шире — это не тот случай, когда пустота красит страницу .

Автоматическое масштабирование

С помощью JavaScript мы можем проверить размер окна браузера пользователя и подключить тот файл стилей, который лучше подойдёт для страницы такого размера. Вот пример такого кода:

Заключение

Мы сможем отказаться от адаптации сайтов под разные мониторы только тогда, когда человечество откажется от мониторов. Ну а пока придётся мириться с тем, что существует огромное количество разрешений:

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

Читайте также:

  • JavaScript: главный инструмент frontend-разработчиков
  • Держи в курсе: как и где разработчики обновляют свои знания
  • Как установить локальный сервер на Windows

Добавить комментарий

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