Требования к верстке сайтов и веб-приложений меняются от года к году - то, что было актуально 2-3 года назад, сейчас считается устаревшим. Чтобы оставаться конкурентоспособным веб-разработчик должен знать, какие основные тренды и критерии предъявляются к верстке сегодня и будет актуально в ближайшем будущем. Это позволит быстро перестроиться и изучить новые технологии, в случае необходимости. Также знание новых критериев качественной верстки сайтов позволит получать больше заказов на фрилансе или продвижение по должности при работе в штате.

Критерии верстки, которые будут актуальны в 2021 году, относятся к общей картине. Не рассматривается адаптация под какую-то конкретную CMS, платформу, устройство или фреймворк. Для удобства критерии будут поделены на несколько больших категорий, касающихся какого-то важного компонента верстки.

Организационные критерии

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

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

Придерживайтесь одного стиля кода

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

Правильная иерархия элементов в HTML

Правильная иерархия элементов в HTML

Придерживаться единого стиля нужно и в CSS, а не только HTML. Правила здесь те же - разделяйте между собой блоки со стилями; старайтесь прописывать цвета одним вариантом, например, через HEX или RGBA; делайте отступы во вложениях к стилю. Здесь тоже код будет работать корректно, даже если вы будете пренебрегать придерживаться единого стиля. Однако читать и редактировать его будет неудобно.

Используйте понятные наименования

Прописывайте названия классов, атрибутов, файлов и папок словами на английском языке. Именно на английском, а не просто транслитерацией. Также названия должны быть понятны как вам, так и другому человеку, который будет работать с вашим проектом. Сокращения можно использовать, но только, если они общеприняты и при этом точно будут понятны вашим коллегам и клиентам.

Правильное название файлов и папок

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

Корректно названные CSS-файлы

Корректно названные CSS-файлы

Делайте правильные комментарии

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

Комментарии в HTML

Комментарии в HTML

Избавляйтесь от неиспользуемых файлов

В “чистовом” варианте проекта не должно быть неиспользуемых файлов. К таковым относятся:

  • файлы, не подключенные ни к одной из страниц;
  • подключенные файлы, которые ничего не выполняют;
  • пустые файлы.

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

Общие технические моменты

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

Кроссбраузерность

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

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

Размеры страницы

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

Наполнение и взаимодействие элементов

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

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

Блоки с текстом без фиксированного размера

Блоки с текстом без фиксированного размера

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

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

Настройка шрифтов

Шрифты должны корректно отображаться в разных браузерах. Возможны небольшие расхождения с основным макетом. Точного соответствия желательно добиться со следующими CSS-стилями шрифтов:

  • font-family - сам шрифт и его тип;
  • font-weight - толщина шрифта;
  • font-style - начертание и подчеркивание;
  • font-size - размер шрифта в любых принятых единицах измерения;
  • line-height - высота строки;
  • color - цвет текста.

Особое внимание рекомендуем обратить на font-family, font-size и color.

Взаимодействие с элементами

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

Критерии HTML-верстки

Данные критерии будут касаться непосредственно HTML-разметки.

Структурные ориентиры HTML

На любой странице проекта, особенно на главной должны встречаться следующие теги-ориентиры:

  • <header>. В этот тег включается вводная часть, которая обычно повторяется на других страницах сайта, например, меню, логотип, блок с контактами;
  • <main>. Здесь идет основное содержимое страницы. Оно уникально для каждой страницы;
  • <footer>. Подвальная секция. Обычно имеет одинаковый вид на всех страницах сайта, но может быть и уникальным для каждой страницы.

Пример стандартного HTML-каркаса

Пример стандартного HTML-каркаса

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

  • <nav>. Здесь обычно располагается главное меню и другие навигационные элементы, одинаковые для всех страниц;
  • <aside>. Разного рода дополнительное содержимое. Тоже уникально для каждой конкретной страницы.

Правильная иерархия подзаголовков

В верстке обязательно использование заголовков. Как минимум, на странице должен быть один H1 и несколько H2 или ниже. Примечательно, что на странице должен быть только один заголовок H1, где описывается основная информация о ее содержимом. Он всегда должен идти самым первым, а после него уже другие заголовки. Для подзаголовков лучше использовать не H-теги, а тег <article>.

Иерархия заголовков в HTML

Иерархия заголовков в HTML

Различайте кнопки и ссылки

В HTML можно сделать из ссылки кнопку, прописав ей стили, однако нужно понимать, когда это можно делать, а когда не нужно:

  • Кнопка, созданная с помощью <button> предусмотрена для действия именно на странице, например, отправки формы;
  • Ссылка вида <a href=””> отвечает за переход между страницами сайта или других веб-ресурсов.

К кнопке <button> обязательно нужно прописывать тип действия в атрибуте type. К правильному оформлению ссылок в теге <a> больше:

  • обязательно должен быть атрибут href, даже если ссылка никуда не ведет;
  • если ссылка никуда не ведет, то в href ставится символ #;
  • в href можно указывать адреса электронной почты и номера телефона, правда, самому тегу <a> нужно будет присвоить соответствующий тип в атрибуте type.

Формы и поля форм

Если на странице предусмотрена форма, то к ней применимы следующие условия:

  • поля и сама форма должны быть полностью работоспособными;
  • поля формы должны быть обязательно внутри тега <form>;
  • у тега <form> должен быть указан атрибут action;
  • поля, обязательные к заполнению, должны иметь атрибут required;
  • подписи полей форм обязательно должны быть привязаны к своим полям.

Избегайте лишних элементов

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

Подключение фавикона

В готовом проекте к каждой странице желательно подключить фавикон через тег <link> в шапке проекта с атрибутом rel="icon". Требования к файлу иконки следующие:

  • расширение файла ico;
  • желательно назвать файл favicon.ico;
  • размер файла 32x32 пикселя.

Подключать фавикон необязательно, особенно, если проект еще не планируется запускать.

Требования к CSS-стилям

При работе с CSS-стилями тоже нужно соблюдать общепринятые критерии верстки.

Правильное подключение

CSS-стили не пишутся в файле с HTML-разметкой. Для них предусмотрен отдельный файл или файлы с расширением css. В процессе подключения нужно учесть следующие требования:

  • подключение производится в блоке <head> с помощью тега <link rel="stylesheet">;
  • разрешается подключение нескольких файлов со стилями, но на первом месте должен идти файл с основными стилями;
  • не добавляйте сторонние стили в один тег <link>;
  • используйте стили в разметке только в особых случаях, например, для демонстрации поведения JS.

Пример правильного подключения стилей к HTML-файлу

Пример правильного подключения стилей к HTML-файлу

Не используйте глобальные селекторы

Глобальные селекторы - это селекторы, отвечающие за стилизацию вообще всех тегов определенного типа. Идентификацию по ним проводить крайне нежелательно. Исключение можно сделать только для следующих глобальных селекторов: *, body, img, :root, в некоторых случаях для img, например, приведения всех картинок на странице к единому стилю.

Определение через ID

В CSS можно идентифицировать элемент по его тегу, классу и идентификатору. Разработчик будет работать преимущественно с классами. Присваивать каждому элементу ID, особенно, если он повторяется несколько раз на странице, нежелательно. Проводить определение элементов через ID рекомендуется в тех случаях, когда вы работаете с каким-то элементом, который встречается только один раз на странице.

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

Правила работы со шрифтами в CSS

При определение шрифтов через CSS правил не так много:

  • шрифты, подключаемые с помощью @font-face должны менять свой вид в зависимости от свойств font-weight и font-style;
  • при указании шрифта через font-family должно быть указано не только название шрифта, но и его семейство: serif, sans-serif, monospace или другое.

Требования к оформлению изображений

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

  • JPG/JPEG для фотографий и фона, за исключением, если в качестве фона выступает паттерн;
  • SVG для векторных изображений, которые должны иметь одинаковые качество на разных разрешениях, например, логотип;
  • PNG для вспомогательных изображений - иконок, паттернов и так далее.

Если вы вставляете изображение на страницу не в качестве фона, то дополнительно рекомендуется прописать в стилях CSS или атрибутах тега размеры width и height. Также не забывайте заполнять у тега <img> атрибуты alt. Дополнительно можно указывать другие атрибуты, но alt обязательно заполнить. Важно, что не нужно дублировать название файла картинки в атрибут alt.

Заключение

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