40+ лучших psd мокапов и инструментов для веб-сайтов 2020

Разделяй и властвуй (макетом)

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

Разбить (визуально) макет на основные составляющие блоки. Это может быть шапка, сайдбар, контентная область, подвал, модальные окна.
В каждом полученном блоке проанализировать его компоненты. Стандартный частый набор для шапки — логотип, меню, форма поиска, область регистрации и тому подобное. Отметить для себя, насколько сложным является их осуществление. Например, адаптация многоуровневого меню для планшетов и мобильных, эффект появления вложенных пунктов меню, анимация при наведении на ссылки, кнопки, анимация появления блоков при клике на кнопку регистрации.
Наличие слайдера, галереи, табов, меню-аккордеона и других элементов, которым потребуется JavaScript “вмешательство”. Как долго будет писаться отдельный модуль?
Сложность сетки контентной области. Примеров может быть множество, так как единого стандарта вывода контента нет, но часто встречающиеся это — блок с картинкой и текстом, masonry-сетка, картинка с появляющимся текстом при наведении… Здесь стоит оценить сложность структуры сетки, её гибкость при добавлении большого количества текста, поведение при изменении размера окна браузера.
Содержимое сайдбара. Там может быть меню категорий, баннер с картинкой, виджет социальной сети, фильтр с чекбоксами и прочим

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

Оцениваем сложность структуры и наличие анимационных эффектов.
Фоновое изображение, градиент и другие эффекты, применимые к графике. Стоит подумать, каким образом будут реализовываться градиенты, затемнения, тени, позиция фоновых изображений — при помощи CSS или используя картинки с макета. Что будет менее трудозатратно и более кроссбраузерно?
Анимация — эффекты появления блоков, плавность прокрутки, кнопка “Наверх”, плавность при наведении на ссылки или кнопки, эффект появления блоков при наведении, нажатии. Желательно определить, каким образом будут написаны данные эффекты и сколько времени займёт их написание.
Наличие модальных окон, pop-up’ов, лайтбоксов и прочих скрытых блоков. Будут они написаны вручную или лучше использовать универсальный плагин?
Проверка контента. Зачастую контентом в макете является “рыба”, она же “lorem ipsum”. Дизайнер помещает контент в блок с фиксированной высотой. Но что будет с данным блоком, если текста будет намного больше или всего пару слов? Этот момент стоит обсудить с заказчиком, если в макете не предоставлены блоки с разным количеством контента.

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

Блочная верстка сайта

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

Блочная верстка сайта имеет следующие преимущества:

  • Блочная верстка образует гораздо меньший объём кода, в отличие от верстки таблицами, что не только увеличивает скорость загрузки страницы, но и уменьшает нагрузку на сервер;
  • Удобство изменения дизайна путём правки файла стилей;
  • Преимущества в сфере SEO. Вместо кода в первую очередь распознаётся контент и семантически правильно размечается.
  • Повышенная читабельность кода, что способствует соответствию стандартам валидности;
  • Задачи по нестандартному оформлению и расположению элементов веб-сайта могут быть с лёгкостью реализованы;
  • Возможность создать адаптивный дизайн, который будет корректно отображаться как на стационарных, так и на мобильных устройствах.

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

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

Верстка слоями: преимущества, недостатки, сфера применения

Слои – это такие элементы HTML кода, которые внедряются в страницу сайта наложением друг на друга с пиксельной точностью. Изменение параметров слоёв происходят с помощью JavaScript и VBScript, что позволяет использовать различные эффекты.

Достоинствами вёрстки слоями являются:

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

К недостаткам вёрстки слоями можно отнести:

  • Необходимость наличия довольно глубоких познаний языков и технологий веб-программирования (VBScript, CSS, JavaScript);
  • Отображение сайта в различных браузерах может также быть различным;
  • С технической точки зрения верстка слоями похожа на позиционирование, однако во избежание проблем с браузерами, тег следует заменять на <div>.

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

Страницы со слоями не имеют единого стандарта отображения браузерами, поэтому одна и та же страница в браузерах Opera и Google Chrome может выглядеть по-разному.

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

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

КГКонстантин Гиновскийавтор

Ещё некоторые условия для скорости вёрстки

Так же для того что бы разработчик работал быстрее, а от скорости зависит чуть ли не весь бизнес, могу выделить ещё несколько пунктов, которые могут изначально показаться не значительными, но на самом деле это не так(поверьте мне, я уже работаю 13 месяцев).

  1. Документация проекта, если строк кода больше чем 1000, то документация это обязательное условие для увеличение скорости разработки. Потому как, после того как сегодня Разработчик реализовал какую-то часть проекта. Вернувшись к нему через 2 месяца, ему придётся разбираться заново, как тут всё работает. С документацией, понимание приходит за 10 минут, без неё может прийти через 8 часов.
  2. «Многофайловость», название файлов и директорий. Не бойтесь создать лишний файл стилей при условии что в нём будет хотя-бы больше 30 строк кода. Гораздо быстрее верстальщик ориентируется по названию файла нежели поиск по одному файлу. Ну а про названия файлов и директорий главное стараться называть максимально точно и кратко.
  3. ООП и наработки. Старайтесь писать код в ООП, гораздо легче и быстрее подключить готовый класс, чем каждый раз писать заново. Для наработок можно создать к примеру репозиторий на github.
  4. Однотипность задач. Одна и та же типичность задач, помогает разработчику углубляться в языки программирования, в технологии связанные с разработкой. Вот тут Вам и становление мидлов и сеньоров. Здесь и будет рост как профессионала в своём ремесле. Здесь и есть увеличение скорости вёрстки сайтов.

Модульная сетка

Обязательно использовать модульную сетку для расположения элементов.

Идеальный вариант сетки 12 колонок (делится на 2, 3, 4 и 6). Так же иногда используются 16 и 24.

Отход от стандартной сетки допустим, например, на сложных промо-страницах или для отдельных элементов.

Важно понимать, как работает сетка для верстальщика. Например, если мы используем 12-колоночный вариант и хотим задать ширину элемента в 50% ширины сайта, то зададим ему ширину 6 колонок

Например, если мы используем 12-колоночный вариант и хотим задать ширину элемента в 50% ширины сайта, то зададим ему ширину 6 колонок.

Колонки можно вкладывать в другие колонки, но здесь кроется важная деталь — вложенная сетка имеет столько же колонок.

Например, на странице есть элемент шириной 6 колонок (половина страницы если используем 12). Внутри него — 2 элемента, визуально и в соответствие с направляющими, шириной в 3 колонки каждый.

На самом же деле, внутри у нас так же 12 колонок, соответственно вложенные элементы должны иметь ширину 6 колонок каждый, что и будет соответствовать 3 колонкам.

Старайтесь изначально определить количество колонок и расстояние между колонками (gutter) и использовать их для всех размеров экрана. Допустимо задавать разное количество колонок и расстояние между ними для разных размеров экрана.

Виды верстки

Существует два вида верстки – блочная и табличная.

Табличная верстка

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

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

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

Как таковая табличная верстка сейчас не используется, но без нее не обходятся при верстке электронных писем – там она, можно сказать, обязательна. Сама верстка разрабатывается с помощью тега <table>, который задает основные параметры таблицы – длину, ширину и прочее. Внутри тега располагаются теги <tr> и <td>, где первый необходим для создания строки, а второй – для столбца.

Блочная верстка

Самый актуальный вид верстки сайтов – блочный. Он основан на теге <div>, с помощью которого создаются контейнеры, включающие в себя весь контент страницы или отдельного блока. Например, мы можем разделить сайт на несколько блоков: первый экран, о компании, контакты – для каждого блока будет отведен свой тег <div>.

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

<div>

            <h1>Привет – это мой первый сайт!</h1>

            <p>Сегодня 2021 год и я сделал свой первый сайт...</p>

            <img src="C:\Users\ya\Desktop\8ftyrtes-960.jpg" alt="">

</div>

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

Например, у нас есть тег h1, и мы хотим сделать его красным – для этого в стилях прописывается следующий код:

h1{

color: red;

}

Заголовок нашей страницы примет следующий вид:

HTML и CSS обычно хранят в разных файлах – такой подход позволяет быстро вносить изменения и не путаться в больших проектах.

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

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

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

Не дублируйте страницу целиком, когда нужно описать поведение элементов интерфейса.

Don’t repeat yourself (DRY) — это принцип разработки, направленный на повторное использование кода. Но его также можно использовать и при вёрстке макетов. Следование правилу «не повторяйся» повышает читаемость и консистентность макетов.

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

Неправильно

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

Правильно

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

Если хотите собрать кликабельный прототип, но он портит читабельность макета — собирайте его на отдельной странице.

Признаки правильной вёрстки

  • Структура страницы составлена в HTML, в то время как стили вынесены в style.css. В HTML остаются только наименования стилей, присвоенных элементам, но параметры стилям присваиваются в отдельном css.
  • У хорошего сайта при просмотре кода отображается только вёрстка. Функциональный код, например, <?php> и часть javascript вынесена также в отдельные классы, недоступные пользователю.
  • Чистота кода необходима для быстрой проверки ошибок и доработки. Выносите стили и функционал во внешние классы, соблюдайте отступы, не плодите сущности.
  • Правильная вёрстка сохраняет размеры макета. Часто неопытные веб-дизайнеры сильно выходят за заданные ограничения шаблона, и внешний вид страницы отличается от дизайна. Более того, лишние пиксели могут привести к проблемам с адаптивностью, «поехавшей» вёрстке.
  • Используйте методологию Яндекса БЭМ. Она позволяет оптимизировать код.
  • Обязательно соблюдайте кроссбраузерность. Современная вёрстка должна корректно отображаться в популярных браузерах при всех разрешениях: Chrome, Firefox, Opera, Safari. Это требование всегда есть в технических заданиях.
  • Используйте заголовки H1, H2, …, H6.
  • Заполняйте атрибуты элементов: <title>, <alt>, <description>.
  • Сведите к минимуму изображения — всё, что возможно, должно прописываться текстом или кодом, и в последнюю очередь представлено в виде растровых картинок.

Создание левой панели

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

Ситуации, когда приходится дорабатывать оформление «на ходу», встречаются довольно часто. Расстояние между меню и основным содержимым позволяет нам вставить подпункты, однако интересен фокус с исчезновением и появлением подменю.

В файл CSS впишите следующий код.

#left
{
	padding: 10px;
	width: 237px;
	padding-right: 1em;
}

#left h3
{
width: 225px;
height: 25px;
font-size: 14px;
font-weight: bold;
padding-left: 15px;
padding-top: 15px;
text-transform: uppercase;
color: #ffffff;
background: url(images/title.gif) no-repeat
}

#left ul {
	margin: 0;
	padding: 10px;
	list-style: none;
	width: 100px;
	font-size: 18px;
}

#left li ul {
	position: absolute;
	left: 90px;
	top: 0;
	display: none;
}

#left ul li {
	position: relative;
	margin-bottom:20px;
} 

#left ul li a {
	display: block;
	text-decoration: none;
	color: #ffffcc;
	background: #ff9900;
	padding: 5px;
	border: 1px solid gold;
	border-bottom: 0;
} 

#left li:hover ul {
	display: block;
}

#left li li {
	margin-bottom:0px;
	width: 150px;
}

#left p
{
padding: 10px;
border-bottom: 1px solid #D72020;
border-left: 1px solid #D72020;
border-right: 1px solid #D72020;
}

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

В контейнер left HTML-документа добавим сначала информационный блок без меню.

<h3>Информация</h3>
	<p>Мы предлагаем Вам праздничные скидки. <a href="http://test1.ru/news.php">Далее...</a></p><br />
	<h3>Меню</h3>

Белый фон распространился ещё ниже по странице.

Теперь самое время вставить в HTML-файл код меню левой панели. Оно, в отличие от верхней навигации, реализовано списками, что можно было заметить ещё из CSS-правил.


  • Галерея

    • Кухни
    • Кровати
    • Стенки
    • Прихожие
    • Шкафы-купе
    • Компьютерные столы
  • Договор
  • Прайс

    • Кухни
    • Кровати
    • Стенки
    • Прихожие
    • Шкафы-купе
    • Компьютерные столы
  • Образцы

    • Стекло
    • ДСП
    • Фурнитура
    • И т.д.
  • Контакты
  • Важно

Взгляните, как смотрится список. Многие могут подумать, что это таблица.

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

Какие макеты мы ищем

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

  • Макеты на русском языке. Можно брать PSD и на английском, но большинство из них даже отдаленно не напоминают те макеты, с которыми потом придется столкнуться на практике. На Западе немного другой подход к дизайну. Кроме того, есть проблема со шрифтами, не поддерживающими кириллицу;
  • Иметь соответствующую уровню навыков сложность. Поэтому необходим либо выбор из большого варианта макетов, либо они должны подбираться индивидуально.

С требованиями определились, а теперь конкретно по вариантам.

Поиск в Google и в Яндекс

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

Можно поступить иначе: искать макеты на английском языке в Google. Например по запросу “Free template PSD” можно найти и скачать большое количество бесплатных шаблонов. Но тогда новичок сталкивается с проблемами работы с англоязычными шаблонами, перечисленными выше.

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

Стили

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

Как шутят фронтендеры — в макете неопытного дизайнера по пятьдесят оттенков серого

Называя стиль отталкивайтесь в первую очередь от его функции — как он используется в интерфейсе. Например:

Семантические названия останутся актуальными, если вы решите изменить оттенок или даже цвет, например, при переходе на темную тему.

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

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

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

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

Сразу отвечу на самые ожидаемые и каверзные вопросы по верстке:

1. Adobe Muse и подобные инструменты? — да, можно использовать и это будет быстро. Если только ваш проект не крупнее односложного одностраничника, который не нуждается в развитии, продвижении и системе управления.

2. Как быть с Perfect Pixel? — я искренне уверен, что Responsive Design и Perfect Pixel понятия разные и даже не совместимые. Я, как веб-дизайнер, конечно, обладаю некоторыми чертами перфекциониста, но если идея хороша, она будет блистать и в Responsive верстке, если идея плохая, то хоть сколько ее не полируй и подгоняй по пикселам, она не будет работать в результате. Поэтому включите ваш дар убеждения, запаситесь аргументами и проведите беседу с вашим клиентом относительно бесполезности такого излишнего перфекционизма.

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

4. Где кончается грань верстки и начинается Front-End, это разве не одно и то же? — все просто, если стоит задача разработать сложный интерактивный интерфейс какого-либо сервиса или веб-приложения, где нужна тесная работа с базой данных — это Front-End. Такие уникальные проекты выходят за рамки области компетенции и бюджета одного фрилансера, чаще всего подобные задачи ставятся команде разработчиков и подходы к таким проектам совершенно другие.

Другие уроки по теме «HTML и CSS»

  • HTML верстка макета Figma. Часть 2 | Создание коммерческого сайта от А до Я. Урок 17
  • HTML верстка макета Figma. Часть 1 | Создание коммерческого сайта от А до Я. Урок 16
  • Создание крутого Swiper-слайдера от А до Я. Джедай верстки #8. Материалы курса
  • Адаптивная верстка галереи без JS. HTML + CSS target. Работа с изображениями (Retina img)
  • Адаптивная HTML верстка вертикального таймлайна
  • Bootstrap 4. Сетка. Подробное руководство

Используйте Emmet и/или Jade

Я люблю Emmet. Благодаря этой полезной штуке, моя работа в 10 раз быстрее, чем без нее. Без лишних слов, просто посмотрите урок: на YouTube.

Также, вы можете использовать Jade или любой другой HTML препроцессор. Штука тоже удобная и классная, но для моих задач хватает Emmet с головой. Вангую много недовольных поклонников Jade, но несмотря на все преимущества и фишки, include для меня не многим проще вставки шапки Ctrl+V, а репит миксина не легче того-же Ctrl+Shift+D. Теоритически, если подумать, изменив шаблон миксина, можно не заморачиваться с переверсткой однотипных накопированных элементов, но таких ошибок я не допускаю, да и крупные проекты не по моей части, поэтому, надобности в ускорении подобных моментов нет. Пробуйте, друзья, экспериментируйте, может вам понравится такой инструмент 🙂

Табличная верстка

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

Совсем недавно до появления блоков и слоёв это был самый популярный тип вёрстки, имеющий множество преимуществ:

  • Лёгкость в создании колонок, что положительно влияет на поведение при изменении размера окна браузера и позволяет создавать многоколоночные макеты сайта;
  • Склейка изображений. Зачастую рисунки делят на несколько отдельных фрагментов для уменьшения объёма файлов, создания эффекта анимации и т.д. Каждый рисунок помещается в отдельную ячейку таблицы, параметры которой задаются таким образом, чтобы стыков между ячейками видно не было;
  • Поскольку высоту и ширину таблицы можно задавать в процентах, табличная верстка широко применяется при создании резинового макета;
  • В отличие от некоторых CSS параметров, таблицы в разных браузерах отображаются практически идентично, что упрощает создание страниц;
  • Из-за одновременного выравнивания содержимого ячеек таблицы и по вертикали, и по горизонтали, возможности по размещению различных элементов дизайна относительно друг друга и на странице в целом расширяются.

Однако имеет место быть и небольшая ложка дёгтя:

  • Для того чтобы содержимое таблицы корректно отображалось браузером, она не будет показываться до тех пор, пока не будет загружена полностью. Если таблица массивная, загрузка сайта займёт довольно много времени;
  • Слишком громоздкий код из-за иерархической структуры тегов, что повышает сложность внесения изменений в отдельные параметры;
  • Плохая индексация поисковыми роботами. Контент сайта с табличной вёрсткой находится относительно далеко друг от друга, что затрудняет попадание сайта в топ поисковой выдачи.

Первый уровень — начинающий

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

По большому счету, из всех тегов на первом уровне вам нужны лишь: html, head, body, meta, title, заголовки h1-h6, p, a, strong, b, ul, ol, li, button, div, img, table, span и внутренние табличные теги. Остальное — на среднем уровне 🙂

Ну и конечно, стоит выбрать себе хороший и удобный Вам редактор кода 🙂

Ну и по сути — это все, что нужно на первом уровне. Верстка простой страницы + дополнение ее картинками, таблицами и т.д.

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

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

Adblock
detector