для чего нужна верстка сайта
Верстка сайта: инструкция для начинающих
Что такое вёрстка сайта
Вёрстка – это структура всех элементов на странице документа, сайта или другого информационного носителя. Такими элементами могут быть изображения, заголовки, подзаголовки, таблицы, инфографика и сам текст.
Изначально понятие вёрстки было применимо к издательской деятельности. Книги, газеты, журналы содержат структурированную информацию. В них есть чёткая сетка, блоки, в которых текст и графические материалы упорядочены таким образом, чтобы максимально облегчить читателю процесс потребления информации и заинтересовать его.
Сейчас актуальность вёрстки для издательств сохраняется, но к ним также примкнула и сфера веб-дизайна.
В разработке сайтов вёрсткой называется перевод дизайн-макетов в интерактивный, читаемый браузерами вид. То есть, верстальщик пишет код, который формирует из предоставленного графического шаблона «живую» веб-страницу, с элементами которой может работать пользователь.
В контексте создания сайтов есть два вида разработки:
Вёрстка относится к front-end. Она не отвечает за базовые возможности сайта, например, за регистрацию пользователей, товарную корзину или прочие операции, связанные с вычислениями, внешними и внутренними запросами, хранением и загрузкой данных.
Вёрстка правильно располагает все элементы на странице и делает так, чтобы с ними было удобно работать. Поэтому вёрстка сайта – это ответственная задача, требующая внимательности, терпения и постоянного тестирования.
Вёрстку веб-страниц невозможно представить без HTML. Если говорить простыми словами, то HTML — это единый стандарт отображения всех элементов веб-страницы. Это язык разметки, с помощью которого браузеры показывают нам порядок, размер, формы и шрифт текста. С его тегами знакомы все, кто занимался созданием сайтов, например:
20+ современных принципов верстки: что нужно знать, чтобы верстать сайты, которые не рассыпаются
Что такое верстка сайта
Разработку разделяют на 2 зоны ответственности:
● Backend — разработка внутреннего функционала сайта на сервере;
● Frontend — внешняя часть сайта, программирование пользовательского интерфейса.
За Frontend отвечают верстальщик (HTML+CSS) и Frontend-разработчик (JavaScript).
Верстка — это перевод дизайн-макетов на язык браузера при помощи кода. Верстальщик дает жизнь макетам, отрисованным дизайнером, воплощает все его задумки, превращая картинки в полноценный сайт. Для этого используются HTML, CSS и скрипты, написанные фронтенд‑разработчиком:
● HTML — разметка, определяющая содержимое — задет каркас, структуру страницы, местоположение объектов;
● CSS — отвечает за представление элементов (размер, цвет, форма);
● JavaScript — определяет поведение объектов (анимация, взаимодействие с интерфейсом).
У каждого верстальщика свой подход и лайфхаки. Это нормально, поскольку у верстки нет канона, все работают по-своему. Но чтобы верстка была надежной, сайт не рассыпался ни при каких условиях, а другой специалист мог потом разобраться с этим кодом — нужно соблюдать правила и принципы, о которых поговорим далее.
Почему верстка — один из самых важных этапов разработки сайта
Первое впечатление о сайте создают дизайн и верстка. Но пользователь никогда не увидит дизайн-макет, он взаимодействует с готовым сайтом, собранным верстальщиком. Поэтому, каким бы крутым ни был первоначальный дизайн, если он криво сверстан, впечатление пользователя будет испорчено с первых секунд.
Но чаще речь идет не только об эстетике. Сайт с поехавшей версткой становится нечитаемым, неудобным и неинформативным. Если 2 текстовых блока наложились друг на друга, или изображение ушло под срез верстки и стали не видны условия акции, даты проведения и другая важная информация на баннере — польза сайта снижается.
Кроме того, качественная верстка — это залог успешного SEO-продвижения, причем она отражается не только на технических, но и на поведенческих факторах ранжирования.
От правильности верстки зависит доступность сайта для поискового робота: сможет ли он проиндексировать всю информацию на странице? Поймет где контент, а где вспомогательные элементы дизайна? Сможет ли уловить иерархию и структуру страницы? Не споткнется ли на ошибках в коде?
Пользователь, зайдя на сайт и обнаружив, что он весь куда-то уплыл, тут же покинет его, добавив нам отказ в систему аналитики, и просадив поведенческие факторы.
Поэтому, кривая верстка — это не об эстетике. Она имеет далеко идущие последствия, так как от нее зависит возможность продвижения сайта.
Из чего складывается верстка сайта
Работа верстальщика складывается из таких этапов как:
● Работа с макетом — выделение изображений, иконок, их компоновка и сохранение в отдельную папку;
● Загрузка и подключение шрифтов;
● Разработка страниц — непосредственная верстка дизайн-макетов на HTML и CSS;
● Подключение готовых скриптов, анимация элементов;
● Проверка корректности верстки, тестирование готового сайта.
Подходы к верстке
Фиксированная верстка
Резиновая верстка
Адаптивная верстка
Сайт верстается под несколько разрешений экрана, например:
● Широкие мониторы: от 1920 px;
● Ноутбуки: от 1280 до 1919 px;
● Планшеты: от 768 до 1279 px;
● Мобильные устройства: от 320 до 767 px
Отзывчивая верстка
Мобильная верстка
Мобильная версия сайта, в отличие от адаптивной, представляет собой верстку отдельного сайта, со своим URL (обычно на поддомене вида m.web-valley.ru) для мобильных устройств. То есть верстается 2 отдельных сайта: один для десктопа, другой — для смартфонов.
Такой подход применяется для крупных порталов или интернет-магазинов, которые верстались десятки лет назад, когда в мобильной версии сайта не было необходимости. Сейчас она нужна, но переработать такие крупные проекты в адаптив, сделать редизайн — дорого и долго. Проще сверстать отдельный сайт для мобильных устройств.
Еще один случай, когда уместна мобильная верстка — проекты, изначально заточенные под мобильный трафик, которым вообще не нужен десктоп.
Техники верстки
Табличная верстка
Табличный метод верстки напоминает работу в Excel: страница делится на строки, а они, в свою очередь, на ячейки, которые наполняются контентом. Табличная верстка выполняется при помощи тега
, задающим столбцы. |
Долгие годы таблицы были самым простым и надежным способом верстки, гарантирующим «резиновость» сайта: колонки таблицы масштабировались под любую ширину экрана. К тому же табличные сайты примерно одинаково выглядели в разных браузерах.
Но у этой техники есть ряд недостатков, которые делают ее бесперспективной:
● Сайт не прогружается при слабом интернете или перебоях связи: чтобы контент таблицы корректно отображался в браузере, он не показывается до тех пор, пока таблица не загрузится полностью. Если таблица большая, то это существенно сказывается на скорости сайта;
● Тяжелый код: чтобы разместить фотографию на сайте в середине страницы, нужно создать таблицу из 3 колонок, фото поместить в среднюю, а первую и последнюю оставить пустыми, они будут служить фиксаторами для изображения по центру. В процессе верстки сайта образуются десятки таких пустых таблиц, что утяжеляет код и снижает скорость загрузки;
● Плохая индексация: поисковый робот не любит сайты с табличной версткой, ему сложно понять структуру и иерархию страницы, тяжело воспринимать контент целостно, так как между небольшими кусочками контента находятся громоздкие части кода;
● Соотношение контента к HTML в пользу последнего: еще один фактор, плохо влияющий на SEO. Для нормальной индексации, контента на странице должно быть больше, чем кода.
В целом, табличная техника считается устаревшей. Ей все еще активно пользуются для HTML‑верстки электронных писем, но для разработки сайтов используют более современные методы.
Верстка слоями
Блочная верстка
Блочная верстка на сегодня единственный валидный и адекватный способ верстки. Это усовершенствованное продолжение верстки слоями. Вместо слоев структурным элементом выступают блоки или контейнеры — прямоугольники разных размеров. Эта форма была выбрана, потому что прямоугольник может удобно делиться на неограниченное число других прямоугольников, что делает верстку более гибкой.
Формируется такой контейнер при помощи тега
, после чего в него помещается контент, причем в зависимости от задачи его можно по разному наполнять:
● Затолкать все содержимое страницы в один контейнер;
● Сверстать сайт поблочно, используя отдельный
контейнер для каждого блока — обложка, о компании, преимущества и т. д.;
● Расположить элементы дизайна одного смыслового блока (например, обложки) по отдельным контейнерам.
То есть, благодаря блочной верстке, мы получаем колоссальную гибкость, а в совокупности с CSS-стилями, которые можно применять к каждому блоку — безграничные возможности.
К преимуществам блочной верстки относятся:
● Небольшой объем кода, а следовательно высокая скорость загрузки и меньшая нагрузка на сервер. В отличие от табличной верстки, позиционирование контейнера можно задавать в любых координатах экрана, не используя для этого лишние пустые поддерживающие ячейки;
● Понятный читаемый код;
● Возможность реализации любых сложных дизайнерских решений;
● Идеален для SEO — робот хорошо считывает такой код, сразу четко видит контент и семантическую разметку, что положительно сказывается на индексации. Если у вас есть сайт на Тильде, наверняка вы видели эту фразу в справочном центре:
На первый взгляд, такая формулировка кажется бредом: ну как последовательно расположенные блоки на странице могут влиять на SEO? Однако, если смотреть на это утверждение с точки зрения блочной верстки, то оно имеет смысл.
Наверное, единственный недостаток блочной верстки — плохая кроссбраузерность. Верстальщику бывает сложно добиться того, чтобы сайт одинаково хорошо выглядел в разных браузерах.
Верстка фреймами
Фрейм — это элемент, который отображает отдельную HTML-страницу. Фреймы не зависят друг от друга. Поэтому при таком подходе верстальщику нужно думать только об отображении «маленького» HTML-файла. Такой подход исключает повторяющиеся части кода, что уменьшает размер и сложность оригинального файла.
Но несмотря на кажущиеся преимущества, верстка фреймами имеет серьезный недостаток: эти сайты хуже всего индексируются поисковиками. Для робота часть таких страниц не имеет контента, а вторая часть — не содержит ссылок на другие страницы, не передает и не принимает внутренний вес сайта.
Кроме того, такая верстка неудобна для пользователя, например, внутренние страницы невозможно добавить в закладки, т.к. у них нет отдельного URL-адреса.
Принципы верстки 2021-2022
Кроссбраузерность
Браузеры не имеют единого стандарта и могут по-разному отображать один и тот же элемент. Задача верстальщика — протестировать сайт во всех популярных браузерах: Google Chrome, Yandex, Opera, Safari, FireFox, Edge, чтобы верстка не рассыпалась ни в одном из них.
В некоторых случаях для этого используют вендорные префиксы перед новыми CSS-свойствами. Например, не все браузеры могут одинаково хорошо прочитать время срабатывания анимации. Чтобы решить этот вопрос, ставят префикс — приставку. Таким образом создается отдельное свойство под конкретный браузер, и вместо нормального transition-duration:0.76s, мы получаем:
-webkit-transition-duration:0.76s;
-moz-transition-duration:0.76s;
-o-transition-duration:0.76s;
-ms-transition-duration:0.76s;
где webkit, moz, o, ms — это префикс.
По сути — это зло и основная причина раздувания CSS-файлов. Ведь для каждого нестандартного и нового свойства нужно прописывать ещё дополнительные 4 строки со всеми префиксами.
Автоматизировать этот процесс можно через Autoprefixer — это программа, которая проставляет префиксы там, где необходимо. То есть в нее загружается файл без префиксов, а на выходе получается файл с префиксами.
Но бывают свойства, которые работают только в одном браузере. В таких ситуациях надо либо отказываться от них, либо использовать с максимальной осторожностью, и только если они не сильно изменяют внешний вид объектов.
Раньше обязательным пунктом ТЗ для верстальщика было корректное отображение сайта в старых версиях браузеров. Сейчас это требование неактуально, так как разработка под старые браузеры значительно удорожает проект, а пользуются ими единицы, и с каждым годом таких пользователей становится все меньше. Поэтому вкладываться в разработку под это старье — нецелесообразно, гораздо важнее, чтобы сайт корректно отображался в современных браузерах.
Лучший способ проверки кроссбраузерности — скачать все популярные браузеры, зайти на сайт и посмотреть, как ведет себя верстка. Но для ускорения процесса, верстальщики пользуются специальными сервисами. Некоторые из них работают по балльной системе, анализируя CSS и выставляя оценку каждому свойству в определенном браузере. Например, сервис Can I use показывает, какое свойство CSS, технология, расширение шрифта и картинок поддерживается на каких браузерах. Оценка выдаётся в процентах пользователей, в браузерах которых верстка не сломается. То есть при выборке в миллион человек и оценке 99% на Can I use, будет 10 000 человек со старыми версиями браузеров, которые не увидят нашу красоту.
Путь верстальщика: с нуля до сеньора
Здравствуйте, меня зовут Александр Зеленин, и я веб-разработчик.
Многократно я слышал мнение, что верстка — удел начинающих frontend’еров. Хотя фактически это важнейшая часть любого (почти) веб-проекта. Это то, что пользователи видят в первую очередь. На текущий момент качественная вёрстка (особенно проектирование блоков) в крупном проекте требует большого количества различных навыков.
В данной статье представляю схему развития верстальщика
[большая по клику]
Само собой, это не всеобъемлющая и единственно верная схема. Есть ещё целая гора связанных навыков, релевантных технологий и так далее. Градация является субъективной.
Хочу сразу добавить, что конкретных ссылок на учебные материалы в статье не будет. Буду рад дополнениям в комментариях.
Чего мы ожидаем?
В первую очередь необходимо понять, чего мы ожидаем от человека на каждом из уровней. Ваши ожидания могут отличаться.
Junior — знает основные теги, может подправить контент на готовом html сайте, умеет грамотно форматировать текст, без проблем вставит встраиваемый элемент (ролик с ютуба, яндекс карту), ведёт работу через систему контроля версий только для себя (master, 1 контрибьютор). Может сверстать что-то несложное с нуля, и оно даже не поедет (лично у него). В целом не является самостоятельной единицей и требует руководства свыше.
Middle — более-менее автономная единица (либо полностью автономная для малых и средних проектов). Может хорошо сверстать сайт средних размеров, и он будет корректно отображаться во всех актуальных версиях браузеров. Понимает, как работают шаблонизаторы, и может их использовать (при условии предоставления остального кода). Умеет планировать и документировать свою работу и оценивать сроки. Понимает важность поддержания стиля кода. Понимает, зачем есть грид-системы и css фреймворки. Умеет брать всю необходимую информацию из макетов от дизайнера. Может взаимодействовать с небольшой командой, создавать ветки и пулл-реквесты.
Senior — может спроектировать систему блоков для крупного проекта. Знает, как избежать повторов и проблемных мест при использовании его кода другими разработчиками. Умеет декомпозировать сложные задачи и грамотно формулировать задачи. Умеет применять минимум одну методологию разработки (например, БЭМ). Может сделать так, чтобы проект открывался максимально быстро. Хорошо понимает несколько популярных шаблонизаторов. Способен написать сборщики и автоматизировать процесс, с этим связанный. Может проводить код ревью и курировать других верстальщиков.
Рассмотрим теперь чуть конкретнее, что включает в себя каждый из блоков на каждом уровне.
Junior
HTML — знание основных тегов, аттрибутов. Понимание, как его писать в принципе.
Типографика — умение отформатировать текст. Текст — основа практически любого проекта. Вставка неразрывных пробелов где надо, выделение жирным, курсивом, abbr и так далее. Можно использовать типограф или схожий сервис, но уметь понимать результат.
Семантика — понимание, что для определённых задач есть определённые теги. Уметь выбрать нужный тег.
Медиа — какие виды медиа можно встраивать в страницу.
Iframe — встраивание сторонних виджетов (видео, аудио, карты и т.п.).
Аудио, Видео — можно отложить изучение, т.к. частично решаются с помощью iframe. Понимать, какие форматы умеет воспроизводить браузер, как оформить плеер и так далее.
Картинки — какие графические форматы и в каком виде воспринимает браузер. Плюсы и минусы использование тех или иных форматов.
Растр — jpg, png, gif. Понимать различие форматов и уметь применять что и где надо.
SVG — можно отложить изучение, т.к. применяется реже, чем хотелось бы. Понимать плюсы, минусы, ограничения и т.п.
Шрифты — можно отложить изучение. На самом деле довольно сложная тема, и в общем случае я бы советовал начинающим использовать системные шрифты. Уметь подгрузить шрифты, оптимизировать отображение, минимизировать лаг отрисовки с кастомными шрифтами.
Табличная вёрстка — опционально. Для желающих верстать качественные email-рассылки в будущем.
CSS 1 — шрифты, цвета, выравнивание, размеры.
CSS 2.1 — управление поведением блоков, позиционирование, полноценное оформление.
Селекторы — простые селекторы на тег, класс, вложенный элемент. Простые псевдоселекторы типа :hover.
Именование — как называть классы, чтобы не было мучительно больно.
Блочная вёрстка — разбить картинку на осознанные блоки, воплотить блоки в HTML, оформить с CSS.
Браузеры — можно отложить изучение. Какие браузеры существуют, в чём их различие.
Инструменты разработчика — можно отложить изучение. Использовать инструменты браузеров, чтобы разбираться в проблемах отображения.
Текстовые редакторы — какие текстовые редакторы для разработчиков есть и зачем. SublimeText и Notepad++ приведены для примера, как хорошо мне знакомые. Уметь настраивать в них базовые вещи, такие как отступы, перенос строки и так далее.
Системы контроля версий — я лично считаю умение их использовать хотя бы индивидуально, лично для себя, очень важным. Понимать, для чего эти системы созданы и какие бывают.
Git — понимать в общих чертах задачу и принципы самой популярной системы контроля версий.
Github / bitbucket — уметь использовать одну из популярных площадок для git.
Checkout / commit / push / pull — базовые операции для личного использования.
Stash — для временного сохранения ненужных в данный момент данных.
10 работ — сделать минимум 10 работ в различном дизайне. Можно тестовых, это не важно. Важно, чтобы полноценных в рамках текущих знаний.
Middle
CSS 3 — градации, тени, сглаживание, фильтры, трансформации.
Продвинутые селекторы — элементы, следующие за опделённым (+), определённый по счёту (nth-child), shadow-dom, before/after и так далее.
Анимации — опционально. transition и animation. Плавные переходы, анимации. Понимать ограничения и минусы.
Сетки — зачем существуют, как выстраивать, какие есть готовые решения. Для примера можно посмотреть Flexbox grid или любой другой, который найдёте.
Фреймворки (CSS) — зачем нужны, как применять. Желательно научиться хорошо использовать минимум один. Очень пригождается для прототипирования. Значительно повышает качество проекта при отсутствии бюджета на дизайн (не уникально, но юзабельно).
CSS препроцессоры — можно отложить изучение. Оптимизация работы, более красивый и читабельный код. Переменные, миксины и т.п. Поработать с одним или несколькими популярными препроцессорами типа SASS, LESS, Stylus.
Media queries — можно отложить изучение. Отображение нужных стилей в зависимости от условий (устройство, размер экрана, плотность пикселей, версия для печати и т.п.).
Стиль кода — понять, для чего есть соглашения по стилям, изучить и начать применять любой (рекомендую от AirBNB).
DRY / KISS / SOLID — можно отложить изучение. Понять важные принципы разработки, ощутимо упрощающие дальнейшее сопровождение проекта.
OOCSS — опционально. Понять, что есть объектно-ориентированный css и для чего он. В том или ином виде используется во многих проектах (хоть и без понимания, что это он). В идеале, научиться проектировать. Может отлично зайти для крупных проектов.
Документация — понять, что и как документировать. Документировать. Можно отложить, но в будущем обязательно изучить разметку markdown.
Планирование — научиться оценивать сроки по картинке и определять последовательность работ.
Декомпозиция — можно отложить изучение. Научиться разбивать задачу на подзадачи. Это сложнее, чем кажется 🙂
Постановка задач — можно отложить изучение. Научиться чётко описывать задачи текстом так, чтобы другие разработчики, в том числе с меньшей квалификацией, достаточно однозначно понимали, что необходимо сделать для их выполнения.
Flexbox — понимание модели, умение применять полноценно.
Вёрстка писем — опционально. В целом навык не лишний. Понимать особенности почтовых систем, сохранить хороший внешний вид и не упасть в спам (если это не спам).
Полифилы — разобраться, как использовать самые актуальные возможности разработки, сохраняя обратную совместимость. Понять минусы и плюсы от такого подхода.
Кроссплатформенная вёрстка — понимать, что нужно делать, чтобы проект хорошо выглядел не только под Windows, Linux и Mac, но и под SmartTV или PS.
Кроссбраузерная вёрстка — понимать разницу рендера браузеров и заставлять их показывать одинаково. Сайт CanIUse очень помогает в этом.
Мобильная вёрстка — можно отложить изучение. Понимать, какие ограничения несут в себе мобильные платформы. Использовать лимитированное пространство грамотно.
Оптимизация — можно отложить изучение. Разобраться в «цене» тех или иных приёмов. Понять, из каких фаз состоит отображение сайта пользователю.
Загрузка — можно отложить изучение. Оптимизации, связанные с размером, кешем, сжатием, объединением ресурсов и т.п.
Отрисовка — можно отложить изучение. Оптимизации, связанные со скоростью рендера после загрузки.
SEO — можно отложить изучение. Хотя бы базовое понимание работы поисковых систем. Умение «помочь» поисковой системе разобраться, куда смотреть и что важно.
Шаблонизаторы — разобраться, каким образом можно переиспользовать код, группировать элементы и компоновать страницы. Очень желательно изучить как серверный рендеринг, так и клиентский. Сюда же входят шаблоны на «чистом» языке (типа простых PHP вставок). Работа «до» (dataflow) шаблонизатора нас не интересует.
PHP — можно отложить изучение. Разобраться в базовом синтаксисе и уметь внести мелкие правки, связанные с оформлением страницы.
CMS — можно отложить изучение. Узнать, какие CMS существуют и для чего они были созданы. Научиться писать шаблоны хотя бы для одной (рекомендую WordPress).
Javascript — можно отложить изучение. Изучить базовый синтаксис, понять, как вешать простейшие обработчики и проводить простую работу с DOM.
jQuery — можно отложить изучение. Научиться экономить кучу времени для решения довольно типовых задач с использованием плагинов для самой популярной js библиотеки (после vanilla.js, конечно).
NodeJS — можно отложить изучение. Разобраться, как запустить простейший сервер, раздавать статику и рендерить на стороне сервера. Можно использовать Express или любой другой фреймворк.
Сборка — опционально. Научиться собирать проект из кучи CSS / HTML файлов в то, что нужно. Рекомендую ознакомиться хотя бы с grunt и gulp, как представителями «разных» лагерей.
IDE — опционально. Изучить, зачем нужны IDE и как их использовать. Перейти на использование какого-либо IDE для экономии времени. Важно: изучение IDE сравнимо с полноценным изучением языка программирования, и вкладывание большого количества времени в это может не оправдаться. Лично я пользуюсь текстовыми редакторами (и только для ооочень крупных проектов включаю IDE).
Branching — научиться управлять ветками в git.
Merge — научиться сливать ветки с разрешением конфликтов.
Fetch / Rebase — разобраться, зачем они, когда их применять, и начать применять по необходимости.
Графические редакторы — разобраться, какие бывают, для чего. Чем векторные отличаются от растровых. Важно понимать редактор хотя бы на уровне «чтения» макета от дизайнера. Выбрать правильный шрифт, размер, цвет и т.п. Чтобы не на глаз, а точно. Рекомендую поработать минимум с 1 растровым (Photoshop) и 1 векторным (Figma).
50 работ — к концу этапа у вас порядка 50 различных работ, демонстрирующих навыки из изученных областей.
Senior
Хоть на схеме и кажется маленькой эта группа, но фактически она самая большая. Т.к. к этому моменту необходимо изучить всё то, что откладывалось.
Адаптивная / Отзывчивая вёрстка — разобраться в высшей ступени и скомбинировать все полученные до этого знания. Проект должен выглядеть хорошо везде и на всём (в рамках разумного).
Постепенная деградация / Прогрессивное улучшение — понять, что это и зачем. Использовать.
Gitflow — уметь объяснить другим разработчикам, как создавать ветки, куда их вливать, как, уметь провести код ревью (вёрстки, само собой, не кода).
БЭМ — опционально. Разобраться в методологии, позволяющей создавать безлимитно крупные проекты так, чтобы при минимальной синхронизации различные команды могли использовать блоки друг друга. Есть и другие методологии, дающие не худший результат. К этому моменту о них вы так или иначе будете знать и сможете, при желании, изучить.
100 работ — иметь суммарно сотню работ, демонстрирующих различные полученные навыки. На самом деле, это всё условно. Можно иметь одну работу (состоящую из различных частей) в портфолио, которая уже покажет, что вам ничего не страшно.
Заключение
Фактически многие из этих тем небольшие. Однако держать кучу различных факторов в голове очень сложно. За 15 лет я общался менее чем с десятью верстальщиками (да и вообще программистами), которых отнёс бы к категории Senior (верстальщиков, программистов хороших было сильно больше).
Навскидку – на полноценное изучение и практику только вёрстки с нуля вполне можно затратить год (и более, если уходить в проектирование компонентов).
Надеюсь, тем, кто находится в начале пути, схема подскажет, куда можно ещё двигаться, и что не обязательно сразу (а можно и вообще не двигать в него) бежать в программирование.
Также планирую создать полноценный бесплатный курс с подробным рассмотрением каждой из тем-прямоугольников со схемы. Буду рад предложением, отзывам, пожеланиям и так далее.
Курс, вероятно, будет в формате видеоуроков с полным текстовым и графическим дублированием. Если дело пойдёт, приложу в будущем ссылки в комментарии.
upd
Много сообщений о том, что верстальщик без знания фреймворка не нужен. В основном это пишут разработчики в крупных проектах. И, для них, это вполне так. Но есть ещё много студий делающих лендинги, различные шаблоны для вордпресов и других CMS. Это вполне себе хороший рынок и возможность зарабатывать. Есть довольно много совершенно небольших проектов, с гораздо меньшими требованиями, которые верстальщик способен закрыть на отлично.