Верстка сайта — наиболее важный вопрос, ведь именно от этого этапа зависит работа вашего сайта и его скорость. Разберем данный вопрос.
Фиксированная верстка — блоки не меняют свою ширину. На мониторах с маленьким разрешением появляется горизонтальная полоса прокрутки.
Табличная верстка — совсем недавно была самым популярным вариантом. Она обеспечивала удобство создания структуры сайта и приемлемое качество отображения. Поисковые системы не «любят», когда структура самой страницы создается таблицами. Уже не используется.
Блочная верстка — самая популярная на данный момент. Верстается блоками. Каждый может убедиться в этом, зайдя на свой любимый сайт и вызвав его исходный код или меню разработчика — скорее всего, структура на нем будет сформирована из множества элементов и с указанными классами.
Респонзивная верстка (резиновая верстка) — блоки меняют свою ширину в зависимости от размера окна браузера. Она может принимать максимальное и минимальное значение. Но нельзя по мере уменьшения экрана из 50% сделать 100%.
Адаптивная верстка — Воплощается с помощью медиа запросов или благодаря скриптам . Заточен под конкретные известные устройства (может быть от 3 до 6 разрешений — от 2048 px до 375 px). Любое изменение происходит рывками, после достижения одного из указанных уровней. Однозначно подходит для создания версии для печати. При уменьшениях экрана, контент идеально подстраивается, в отличии от респонзивного варианта.
Отзывчивая или гибридная верстка — это смесь адаптивного и респонзивного дизайна. Такой тип используют большинство проектов, для удешевления стоимости разработки. Разрабатывается только десктопная имобильная версия, планшетная версия делается респонзивной, или может иметь 1 — 2 точки пересечения для экранов.
Мы выделили самые востребованные и те, с которыми мы работаем в последнее время.
Кроссбраузерность
Технологии
Проект должен быть сделан на HTML и CSS без использования сторонних библиотек и фреймворков. Допускаются скрипты бибилиотек, которые не конфликтуют с остальными скриптами и не выдают критических ошибок. может повысить нагрузку сайта при загрузке в браузере. А это в любом случае слайдеры, галереи. видео, медиа элементы, сложная анимация и так далее.
Размеры страницы
Допускаются расхождения по горизонтали, не превышающие ширину полосы вертикальной прокрутки.
Переполнение
Размеры элементов
Контент больше ширины родителя не должен выходить за его пределы, ломать сетку или смещать другие блоки.
Количество элементов
Шрифты
Следующие текстовые параметры должны соответствовать параметрам из макета:
Pixel Perfect
При наполнении контентом, как в макете, элементы каждой страницы соответствуют макету.
Допускаются:
Взаимодействие
При взаимодействии с элементами (наведение, нажатие) ни сам элемент, ни окружающие его блоки не меняют своего положения, если такое поведение не предусмотрено макетом.
Имена атрибутов и классов, а так же файлов и папок
Названия папок, файлов, атрибутов, классов должны состоять из английских слов.
Рекомендуем записывать слова полностью, без сокращений. Для сокращений можно использовать слова из списка часто используемых слов.
Понятные имена папок и файлов верстки
Закомментированный код
В проекте не должно быть закоментированных фрагментов кода без осмысленного текстового пояснения.
Неиспользуемые файлы
В проекте не должно быть неиспользуемых файлов:
Файлы svg-изображений, которые заинлайнены в разметку, могут остаться в папке проекта.
HTML Ориентиры
На странице, при их наличии, должны быть обозначены структурные ориентиры:
Ориентиры могут быть обёрнуты или вложены в другие теги, использоваться для стилизации или просто служить смысловыми обёртками.
Как можно сэкономить на верстке?
Заголовки
Исключения, касающиеся наличия одного <h1> на странице или изменения сквозной структуры заголовков, возможны для тега <article>, так как внутри него может находиться свой собственный <h1> и собственная структура заголовков.
Кнопки и ссылки
Ссылки <a href> должны использоваться для перехода между страницами, а кнопки <button> должны использоваться только для действий на странице.
Работоспособные формы
Подписи полей форм
Подписи полей форм должны быть привязаны к своим полям.
Лишние элементы
В разметке не должно быть лишних обёрток и элементов, которые используются для оформления и могут быть заменены на псевдоэлементы.
Валидация HTML
Фавиконки
К каждой странице должны быть подключены иконки с помощью <link rel=»icon»> с указанием размера иконки.
Подключение стилей
Глобальный селектор
Глобальные селекторы запрещены, кроме исключений, приведённых ниже.
Глобальный селектор — это селектор по типу элемента или универсальный селектор. Например:
* {}
body {}
img {}
:root {}
Исключения:
ID в селекторах
В селекторах не должно быть #id.
Использование !important
Ключевое слово !important не должно использоваться для борьбы со специфичностью.
Использование шрифтов
Контентная и декоративная графика
Форматы графики
Выбран подходящий формат изображений. Например:
Размеры графики в разметке
Для всех изображений, размеченных при помощи <img> и <svg>, размеры должны быть заданы с помощью атрибутов width и height.
Текстовые переносы
Текст не должен переноситься с помощью двойного <br>.
Описание графики
Контентная графика должна иметь описание.
Чтобы описание элемента попало в дерево доступности, нужно использовать один из способов:
Предпочтительно увеличивать доступность в первую очередь с помощью HTML и только потом — aria-ролей.
Подпись в конце описания должна иметь точку. Точка нужна для интонационной паузы при чтении скринридером.
Подписи интерактивных элементов
Интерактивные элементы должны быть подписаны. Подпись должна быть связана с элементом и отображаться в дереве доступности.
Предпочтительно реализовывать подпись с помощью HTML: тегом с классом visually-hidden или атрибутом alt у изображений, и только потом — aria-атрибутами.
Подпись в конце описания должна иметь точку. Точка нужна для интонационной паузы при чтении скринридером.
Видимое состояние элементов
Область интерактивных элементов
Область интерактивных элементов должна включать тексты, иконки и другие связанные части. Она не должна накладываться на окружающие элементы.
Область клика у интерактивных элементов может быть больше, чем их контент, но область клика не должна накладываться на окружающие элементы.
Область клика можно определить из макета. Если в макете область клика не определена, то можно сделать её на своё усмотрение, руководствуюсь примерами ниже.
Фоновый цвет у фоновых картинок
Для блока, у которого есть текст с фоновым изображением, должен быть указан фоновый цвет, который соответствует преобладающему цвету изображения. Преобладающий цвет фоновой картинки должен быть контрастным.
Порядок фокуса
Порядок фокуса на интерактивных элементах не должен изменяться стилями.
_
Полный перечень с примерами применения данной верстки вы можете посмотреть здесь
1 вариант
Сделать отзывчивую или гибридную верстку — разработав при этом только десктоп и мобильную версию. Помните, что это не полный адаптивной верстке, при адаптивной верстке делают минимум 3 разрешения — десктоп, планшет, мобильный. Большинство проектов малого и среднего бизнеса реализуют таким подходом.
2 вариант
Сделать респонзивную верстку, или с применением фреймворка Bootstrap (чего я не рекомендую, так как данный фрейворк тянет все свои компоненты в ядро верстки, это утяжеляет страницу). При респонзивной верстке у вас мобильная версия будет до 480 px шириной минимум, но размеры элементов будут уменьшаться пропорционально и возможно мобильная версия будет не такой отзывчивой. как при адаптивной или отзывчивой верстке.
Правильно считается так, количество элементов умножается на курс доллара + каждый скрипт от 20 до 30 $. Во внутренней странице считаются только те элементы, что не входят в другие страницы. Такой подход используются в студиях как российских, так и в зарубежных. Но верстка по такому прайсу выходит очень дорогой, понятно, что такую верстку верстают только специалисты уровня senior. Но позволить такую верстку могут только большие компании.
У многих студии, да и на фрилансе цена за страницу может быть фиксированной до 10 блоков, после 10 блоков стоимость верстки будет выше. Исключения портальные страницы, страницы лэндингов, которые имеют больше 10 блоков. Страницы со сложным функционалом, калькуляторы, скрипты, интеграции, сложная анимация. Так же отдельно считается привязка дополнительного языка.
ВВЕРХ