Читать онлайн Шпаргалки для начинающего верстальщика HTML/CSS бесплатно
![Шпаргалки для начинающего верстальщика HTML/CSS](/pics/b/111160/111160.jpg)
Вступление
Когда я только начинала учить верстку, я записалась на бесплатные курсы по основам HTML/CSS на одной достаточно известной платформе, дополнительно я читала книгу Э. Робсон, Э. Фримена «Изучаем HTML, XHTML и CSS (Head First)».
Все было отлично до того момента, пока я не сделала попытку сверстать небольшую простенькую веб-страницу самостоятельно. Оказывается пройденные курсы и прочитанная книга – это было зря потраченное время, так как информация, которую, например, мне дали курсы, была дана кусочками, дозировано, вследствие чего у меня совершенно не сложилось целостное понимание как и что я должна делать.
Да я уже знала основные теги в HTML, у меня были базовые знания CSS, но только теоретические, применять их в реальности на примере реальной веб-страницы я не умела.
Так пришла идея проанализировать основные типовые решения, типовой код, который используется при верстке веб-страницы и сформировать шпаргалку, с помощью которой я могу действительно верстать сайты, а не выполнять теоретические задачи из заданий курса, на которые в итоге я лишь трачу свое драгоценное время.
Надеюсь мои шпаргалки помогут таким же начинающим верстальщикам сформировать понимание логики и структуры работы над версткой и продвигаться далее в этот интересный захватывающий мир веб-разработки.
Также прошу учесть, что предложенные пути решения той или иной проблемы, имеют и иные варианты, здесь указаны самые простые для понимания, чтобы новичок мог сам понять и усвоить нужные действия и решения, а далее, с опытом смог их самостоятельно усложнять/упрощать.
Итак, начинаем!
Как работать с данной книгой
Практически любой дизайн-макет, которому требуется верстка состоит из стандартных элементов: кнопки, карточки, текст и пр. Поэтому если начинающий верстальщик хочет как можно быстрее перейти к практике, научиться верстать, писать код для реальных проектов, ему нужно в первую очередь освоить навык работы с указанными стандартными / универсальными элементами.
Всем известно, что чтобы лучше и быстро разобраться с тонкостями любой работы, любой профессии, следует как можно раньше начинать практиковаться. Поэтому важно сразу теорию совместить с практикой, для начала советую в поисковике найти бесплатные макеты для верстки для начинающих, взять макет и начинать его верстать, параллельно изучая теоретические моменты. Только так вы научитесь верстать за достаточно короткое время.
В данной книге вы найдете код для стандартных элементов, о которых я писала выше, вы можете изучить код, прочитать про теги, которые в нем использованы, далее повторить данный код, учитывая особенности своего макета. Получается данные шпаргалки – ориентир вам на начальном этапе верстки.
Далее с практикой вы будете верстать все более сложные макеты и лучше ориентироваться какие свойства и параметры вам следует в том или ином случае написать.
Когда вы изучите и на практике закрепите основные принципы и способы работы с HTML и CSS, вы можете скачивать уже сверстанные шаблоны с psd исходниками. Сначала верстать самостоятельно по макету, используя знания и навыки полученные с данной шпаргалкой и после каждого блока можно сверять с исходной версткой, что бы приблизительно понимать какие ошибки сделаны, как более оптимально можно было решить ту или иную проблему, так ваше обучение верстке будет намного эффективней.
Создаем каркас сайта
Общая универсальная структура нашей страницы
Страница сайта является обычным текстовым файлом, расширение которого. html.
Как его создать? Можно открыть Блокнот через панель Пуск на компьютере и нажать во вкладке Файл – Сохранить как…
Сохранить мы должны данный файл как index.html.
Аналогично в нашу папку с названием проекта мы должны положить файл для CSS, его мы должны назвать style. css.
Внутри данного файла и хранится текст HTML-страницы. Он должен обязательно иметь такие теги как:
– тег <html>, который содержит в себе текст всего сайта (все, что написано вне его, браузер будет проигнорировать)
– внутри <html> должен обязательно быть тег <head>, в нем отражается служебное содержимое страницы
– также внутри <html> должен обязательно быть тег <body>, в нем отражен основной текст, который и виден на экране браузера.
В теге <head> должны быть тег <h2>, он задает название страницы, в браузере, тег <meta>, задающий кодировку страницы (в атрибуте charset, как правило, это значение utf-8).
Также перед тегом <html> пишется конструкция doctype, она указывает на версию языка HTML, на которой сделан сайт. В настоящее время актуальна версия, которую выражает <!DOCTYPE html>.
Структура любой страницы имеет общую структуру, которая в целом выглядит так:
<!DOCTYPE html>
<html lang=«en»>
<head>
<meta charset=«UTF-8»>
<meta name=«viewport» content=«width=device-width, initial-scale=1.0»>
<h2> Заголовок страницы </h2>
<link rel=«stylesheet» href=«style. css»> // подключаем CSS
</head>
<body>
<header> шапка сайта </header>
<main class=«main»> основная часть </main>
<footer class=«footer»> подвал сайта </footer>
</body>
</html>
Пишем шапку сайта
Что такое шапка сайта? Это верхняя часть сайта, где размещены логотип компании, контактные данные компании и панель навигации. Рассмотрим ниже два самых распространенных типа шапки сайта.
В HTML шапку сайта оформляют с помощью тега header, это парный тег.
Тег – это специальное зарезервированное слово в языке HTML, его ключевая составляющая. Именно тегом начинается код и им же заканчивается. Внутри тега располагается информация, которая отображается на веб-странице.
Теги могут быть парными и одиночными. Парный тег состоит из открывающего и закрывающего тегов. Открывающий тег изображается с помощью знаков “ <” и ">». У закрывающего тега перед именем стоит слэш “/».
Например, <header> – открывающий тег, </header> – закрывающий.
Как правило, в 99% случаев шапка сайта сделана стандартно, с позиции языка HTML, поэтому нам, новичкам, следует только несколько раз повторить код указанный ниже на реальных примерах, на практике, чтобы понять как данная шапка с позиции HTML устроена и идти по пути обучения верстке далее.
Начинающему верстальщику для того, чтобы лучше запомнить теги и свойства, а также чтобы лучше ориентироваться в своем коде, необходимо писать комментарии, что и как мы делаем. Комментарии в оформляются следующим образом:
<! – Здесь мы пишем комментарий – >
Так как контент сайта расположен по середине, а по бокам у него имеется пространство, можно предположить, что все содержимое сайта помещено в контейнер – это некий блок, в которым расположена вся информация веб-страницы.
<header>
<div class=«container»> // весь контент, вся информация располагается в контейнере
</div>
</header>
Далее верстаем шапку.
Оформляем шапку сайта в HTML (тип 1)
Первый тип состоит из логотипа, формы поиска, аватар пользователя.
Стандартный HTML-код для первого типа шапки сайта будет выглядеть так:
<header class=«header»>
<div class=«logo»> Логотип </div>
<! – Здесь форма поиска – >
<form action=" " class=«search»>
<input type=«search» class=«search-input» placeholder=«Поиск»>
<button type=«submet» class=«search-button»>
<img src="img/search-icon.svg» alt=«search-icon»>
</button>
</form>
<! – Здесь аватар пользователя – >
<div class=«user»>
<img src=«img/Изображение – Иконка.svg» alt=«bookmark» class=«bookmark»>
<img src=«img/Аватарка пользователя.png» alt=«avatar» class=«avatar»>
</div>
</header>
Кратко опишу теги, примененные выше в коде
button – данный тег создает кликабельную кнопку.
img – добавляет на веб-страницу HTML-изображения. Это одиночный тег. У него есть обязательный атрибут src, который указывает путь к изображению, и необязательный атрибут alt, который содержит в себе резервный контент. То есть если на веб-странице по какой-либо причине не откроется изображение, на ней будет указана информация, которую содержит атрибут alt.
Пример кода:
<img src=«img/Иконка (или фотография).svg» alt=«Иконка (Фото)»>
form содержит наше форму поиска, рассмотрим ее подробнее далее.
Ширина изображения
По умолчанию изображения отображаются реальным размером, однако мы можем изменить его размер через атрибут width, который задает ширину изображению
<img src="foto.png» width=«100»>
Если мы, например, зададим ширину 100, а реальные размеры изображения были 200Х200 пикселей, то изображение станет 100Х100, так как вследствие изменения ширины, изменилась и наша высота, чтобы пропорции изображения не исказились.
Аналогично, если мы зададим высоту изображению с помощью height
<img src=" foto.png» height=«100»>
Примечание: одновременно не следует задавать и широту и высоту в <img>.
Форма поиска по сайту
Запишем отдельно общий пример формы поиска по сайту
<form>
<input type=«search»>
<input type=«submit» value=«Найти»>
</form>
form – определяет форму в HTML документе. По сути данный элемент – это просто контейнер, внутри которого можно разместить разные надписи, элементы управления и типы входных элементов, флажки, радио-кнопки и пр.
input – ключевой элемент тега form, он определяет пользовательское поле для ввода информации. Поле ввода может принимать различный вид, который зависит от атрибута, который применен к input. К примеру, placeholder.
type – указывает браузеру, к какому типу относится элемент формы.
placeholder – это атрибут тега input, он указывает подсказку, которая описывает ожидаемое значение для ввода в элемент:
– email (поле для адреса электронной почты)
– password (поле с паролем, в котором скрываются символы)
– search (текстовое поле для ввода строки поиска)
– text (однострочное текстовое поле).
Пример кода:
<input type=«search» placeholder=«Поиск»>
Зачем нужны секция, контейнер и див-блоки
section (секция) – это полочки, разделы, в которых размещается блок какого-то контента, данный блок объединен определенной графикой или картинкой. То есть его предназначение – выделять цветовым решением или графикой определенный контент.
container (контейнер) – блок, который центрует контент по середине.
Тег div является пустым универсальным контейнером, который наполняется определенным содержанием. Его цель – логически объединить любой набор элементов внутри данного тега в единственном блоке.
При этом если мы зададим данному div-блоку определенный класс, то через данный класс далее мы можем вложенные элементы стилизовать средствами CSS, или динамически манипулировать ими с применением скриптов Javascript.
Зачем нужен class
Классы необходимо использовать, когда нужно определить стиль для индивидуального элемента веб-страницы или задать различные стили для одного тега. Отметим, что использовать русские буквы в именах классов нельзя.
Атрибут class указывает одно или несколько имен классов для элемента HTML. Если мы в HTML пишем элементу несколько классов, их мы должны указать просто через пробел.
<h1 class=«h2-home office»>
Как видно из примера выше, если класс состоит из несколько слов, частей, то записывается оно через тире, например, h2-home, h2-1 и т. д.
В целом название класса можно описывать, используя различные направления и правила, ориентируясь на DOM, БЭМ и прочее. Советую вам, если интересно, почитать данную тему отдельно и для самого себя выстроить определенную систему названий, которые для вас и желательно для других разработчиков будут логичны и понятны.
Имя класса может использоваться CSS, как говорилось выше, чтобы задать различные стили для одного тега. Для того, чтобы записать стили для определенного класса, перед его именем ставят точку:
.h2-home {
стили
}
В JavaScript имя класса используется для выполнения определенных задач для элементов.
Оформляем шапку сайта в HTML (тип 2)
Второй тип шапки состоит из логотипа, меню – навигации сайта и аватар пользователя или какой-либо иной информации
Логотип как правило оформляется в виде картинки:
<img src="img/Logo.png» alt=«logo» class=«logo»>
Данную картинку-логотип мы скачиваем в формате png с макета в Photoshop и Figma или другой программе, в которой работал дизайнер.
<nav> – это тег навигации сайта, в него входит меню сайта в виде списка ссылок:
<nav class=«menu-list»>
<a href=«#» class=«menu-link»> </a>
<a href=«#» class=«menu-link»> </a>
<a href=«#» class=«menu-link»> </a>
<a href=«#» class=«menu-link»> </a>
</nav>
Навигацию сайта можно создать различными способами, например, не менее распространен способ создания с помощью списка.
Далее идет аватарка пользователя, во многом схожая с шапкой первого типа:
<div class=«user»>
<img src=«img/User Картинка» alt=«user» class=«user-icon»>
<p class=«user-text»> User </p>
</div>
В целом код шапки второго типа получился такой:
<header>
<div class=«container»>
<div class=«header»>
<img src="img/Logo.png» alt=«logo» class=«logo»>
<nav class=«menu-list»>
<a href=«#» class=«menu-link»> Menu One </a>
<a href=«#» class=«menu-link»> Menu Two </a>
<a href=«#» class=«menu-link»> Menu Three </a>
<a href=«#» class=«menu-link»> Menu Four </a>
</nav>
<div class=«user»>
<img src=«img/User icon.png» alt=«user» class=«user-icon»>
<p class=«user-text»> User </p>
</div>
</div>
</div>
</header>
Кратко опишу теги, примененные выше в коде
<a href=«»> Menu </a> – это тег ссылки. Нажимая на ссылку, мы можем перейти на другую страницу сайта или на другой сайт. В данном теге обязательно должен быть атрибут href, в него записывают адрес страницы, на которую ведет ссылка.
Лайфхак к ссылке: когда мы только пишем код, на любые ссылки необходимо ставить «затычки» #:
<a href=«#»> </a>
<nav> – используют для обозначения содержимого в форме основных навигационных ссылок. Документ может иметь несколько данных элементов, к примеру, один для навигации по сайту, а второй для навигации по странице.
<p> – определяет абзац в HTML-документе, при его отображении браузер автоматически вставляет до и после него отступы.
Оформляем шапку первого типа в CSS
Описать универсальное оформление шапки сайта в CSS на порядок сложнее, чем в HTML, постараюсь указать основное.
Во-первых, нам нужно ограничить контейнер, то есть задать ему максимальную ширину, для каждого макета она своя, а также выравниваем содержимое данного контейнера по середине – margin: auto;
.container {
max-width: 1140px;
margin: auto;
}
В классе header можно поставить универсальное выравнивание элементов по центру, чтобы выровнять логотип соответственно прочим элементам шапки, также универсально распределение элементов органично по длине шапки и пр.
.header {
display: flex; /*выравнивание по центру по вертикали*/
align-items: center; /*раскидываем по сторонам*/
justify-content: space-between;
}
justify-cоntent: space-between; – данное свойство равномерно распределяет элементы по всей строке. Первый и последний элемент прижимаются к соответствующим краям нашего контейнера. В целом про свойство justify-content смотрите далее.
display: flex; – делает все дочерние элементы резиновыми – flex, а не блочными, как было изначально. Если родительский блок содержит, например, графические элементы, они становятся анонимными flex-элементами.
Оформим непосредственно меню, ниже указан пример, отмечу, что при работе над проектом данные вы должны смотреть в своем макете (боковая панель слева).
.menu-link {
font-size: 16px;
line-height: 24px;
color: #2E266F;
text-decoration: none;
margin-right: 45px;
}
Кратко опишу теги, примененные выше в коде
text-decoration: none; – убирает автоматическое подчеркивание в созданном нами списке
font-size: – определяет размер шрифта элемента.
line-height: – высота строки.
color: – определяет цвет текста.
Причем существует несколько цветовых моделей, через которые можно указать значение цвета.
Так зеленый цвет можно вывести в свойстве color как:
– green
– #41AB0D
– rgb (255,0,0)
– rgba (255,100,0,.5)
– hsl (0, 20%, 50%)
– hsla (221, 100%, 50%,.8) и пр.
Самые популярные это green и #41AB0D.
Через # записывается шестнадцатеричная система счисления цвета. Выше приведена сокращенная запись hex-цветов.
Есть специализированные сайты, с помощью которых можно узнать название того или иного цвета, его прочие цветовые модели. Например, сайт Сolorscheme https://colorscheme.ru/color-names.html
max-width: – устанавливает максимальную ширину элемента.
margin: auto; – свойство margin в значении auto применяется для горизонтального центрирования элемента в его контейнере. Данный элемент будет занимать заданную ширину, а остальное пространство будет равномерно распределено между левым и правым полями.
Оформляем шапку второго типа в HTML с помощью Bootstrap
Оформляем с помощью библиотеки Bootstrap, как ее подключить расскажу далее.
<header class=«container header»>
<div class=«row»>
<div class=«col-2»>
<a href="/" class=«logo-link»>
<img width=«128» src=«img/Фото логотипа» alt=«logo» class=«logo-i»>
</div>
</div>
<div class=«col-6»>
<nav>
<ul class=«navigation»>
<li class=«navigation-icon»>
<a href=«#» class=«navigation-link»> Womens </a>
</li>
<li class=«navigation-icon»>
<a href=«#» class=«navigation-link»> Mens </a>
</li>
<li class=«navigation-icon»>
<a href=«#» class=«navigation-link»> Goods </a>
</li>
<li class=«navigation-icon»>
<a href=«#» class=«navigation-link»> Brands </a>
</li>
<li class=«navigation-icon»>
<a href=«#» class=«navigation-link»> Blog </a>
</li>
</ul>
</nav>
</div>
<div class=«col-2»>
<button class=«button»>
<img class=«button-icon» src=«img/Фото» alt=«icon Card»>
<span class=«button-text»> Cart </span>
</button>
</div>
</div>
</header>
Кратко опишу теги, примененные выше в коде
container – это ключевой строительный блок Bootstrap. Его применяют для содержания, заполнения, центрирования содержимого внутри него.
<div class=«row»> класс «row"является элементом библиотеки Bootstrap. Ее сетка состоит из строк и колонок, что дает возможность позиционировать элементы на странице как это необходимо по макету. Сам класс означает ряд, который занимает всю ширину элемента, внутри которого он находится, выравнивание по горизонтали реализуется через колонки col.