Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
HTML элемент в общем виде
Состоит из двух тегов: открываюший и закрывающий
"tag": название тега
Аттрибуты тега
Cодержимое тега (может содержать дочерние HTML элементы)
HTML элемент может не иметь закрывающего тега (следовательно и дочерних элементов)
а также не иметь аттрибутов
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible"
content="IE=edge">
<title>Title</title>
</head>
<body>
</body>
</html>
Базовая структура (разметка) html документа
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible"
content="IE=edge">
<title>Title</title>
</head>
<body>
</body>
</html>
Объявление типа документа. Исторический артефакт
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible"
content="IE=edge">
<title>Title</title>
</head>
<body>
</body>
</html>
Элемент <html>
содержит в себе всё содержимое страницы, и иногда его называют "корневой
элемент"
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible"
content="IE=edge">
<title>Title</title>
</head>
<body>
</body>
</html>
Элемент <head>
содержит метаинформацию.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible"
content="IE=edge">
<title>Title</title>
</head>
<body>
</body>
</html>
Элемент <meta>
устанавливает кодировку utf-8.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible"
content="IE=edge">
<title>Title</title>
</head>
<body>
</body>
</html>
Элемент <title>
устанавливает заголовок вашей страницы, который появляется во вкладке
браузера
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible"
content="IE=edge">
<title>Title</title>
</head>
<body>
</body>
</html>
Элемент <body>
содержит весь видимый контент
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible"
content="IE=edge">
<title>Title</title>
</head>
<body>
</body>
</html>
Вот тут, в своих потомках
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible"
content="IE=edge">
<title>Title</title>
</head>
<body>
<div id="links">
<ul>
<li>
<a href="#">HOME</a>
</li>
<li>
<a href="#">BLOG</a>
</li>
<li>
<a href="#">CONTCT US</a>
</li>
<li>
<a href="#">ABOUT</a>
</li>
<li>© 2023</li>
</ul>
</div>
</body>
</html>
HTML образует деревовидную структуру, называемую DOM:
Document Object Model
Для чего нужна иерархическая структура?
selector {
prop1: "value1";
prop2: "value2";
}
набор CSS правил в общем виде
selector {
prop1: "value1";
prop2: "value2";
}
Селектор - строка, ссылающаяся на html элементы в DOM дереве
p {
prop1: "value1";
prop2: "value2";
}
Ссылаемся на все параграфы
p a {
prop1: "value1";
prop2: "value2";
}
Ссылаемся на все ссылки внутри параграфов
p, a {
prop1: "value1";
prop2: "value2";
}
Ссылаемся на все ссылки и на все параграфы
selector {
prop1: "value1";
prop2: "value2";
}
Более подробное построение селекторов мы рассмотрим далее
selector {
prop1: "value1";
prop2: "value2";
}
Объявление свойства
selector {
prop1: "value1";
prop2: "value2";
}
Объявление свойства
p {
color: "white";
prop2: "value2";
}
Например таким образом мы задаем белый цвет текста всем параграфам
p {
color: "white";
text-align: "right";
}
А также выравнивание по правому краю
selector1 {
prop1: "value1";
prop2: "value2";
}
selector2 {
prop1: "value1";
prop2: "value2";
}
Несколько наборов CSS правил
selector1 {
prop1: "value1";
prop2: "value2";
}
selector2 {
prop1: "value1";
prop2: "value2";
}
Несколько наборов CSS правил
Lorem ipsum dolor sit amet consectetur,
adipisicing elit. Debitis nemo assumenda soluta
iste obcaecati aliquid quibusdam blanditiis tenetur
distinctio perspiciatis! Repellat nam vitae omnis
impedit, ab commodi minus debitis quisquam.
/* css */
/* empty for now */
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.
Блочная модель/Модель коробки
Lorem ipsum dolor sit amet consectetur,
adipisicing elit. Debitis nemo assumenda soluta
iste obcaecati aliquid quibusdam blanditiis tenetur
distinctio perspiciatis! Repellat nam vitae omnis
impedit, ab commodi minus debitis quisquam.
/* css */
p {
border: 3px dashed red;
}
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.
border
: задаем границу
Lorem ipsum dolor sit amet consectetur,
adipisicing elit. Debitis nemo assumenda soluta
iste obcaecati aliquid quibusdam blanditiis tenetur
distinctio perspiciatis! Repellat nam vitae omnis
impedit, ab commodi minus debitis quisquam.
/* css */
p {
border: 3px dashed red;
}
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.
border
: задаем границу
Lorem ipsum dolor sit amet consectetur,
adipisicing elit. Debitis nemo assumenda soluta
iste obcaecati aliquid quibusdam blanditiis tenetur
distinctio perspiciatis! Repellat nam vitae omnis
impedit, ab commodi minus debitis quisquam.
/* css */
p {
border: 3px dashed red;
margin: 40px;
}
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.
margin
: задаем внешние отступы
Lorem ipsum dolor sit amet consectetur,
adipisicing elit. Debitis nemo assumenda soluta
iste obcaecati aliquid quibusdam blanditiis tenetur
distinctio perspiciatis! Repellat nam vitae omnis
impedit, ab commodi minus debitis quisquam.
/* css */
p {
border: 3px dashed red;
margin: 40px;
}
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.
margin
: задаем внешние отступы
Lorem ipsum dolor sit amet consectetur,
adipisicing elit. Debitis nemo assumenda soluta
iste obcaecati aliquid quibusdam blanditiis tenetur
distinctio perspiciatis! Repellat nam vitae omnis
impedit, ab commodi minus debitis quisquam.
/* css */
p {
border: 3px dashed red;
margin: 40px;
padding: 40px;
}
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.
border
: задаем границуmargin
: задаем внешние отступы
Lorem ipsum dolor sit amet consectetur,
adipisicing elit. Debitis nemo assumenda soluta
iste obcaecati aliquid quibusdam blanditiis tenetur
distinctio perspiciatis! Repellat nam vitae omnis
impedit, ab commodi minus debitis quisquam.
/* css */
p {
border: 3px dashed red;
margin: 40px;
padding: 40px;
}
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.
padding
: задаем внутренние отступы
Lorem ipsum dolor sit amet consectetur,
adipisicing elit. Debitis nemo assumenda soluta
iste obcaecati aliquid quibusdam blanditiis tenetur
distinctio perspiciatis! Repellat nam vitae omnis
impedit, ab commodi minus debitis quisquam.
/* css */
p {
border: 3px dashed red;
margin: 40px;
padding: 40px;
}
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Debitis nemo assumenda soluta iste obcaecati aliquid quibusdam blanditiis tenetur distinctio perspiciatis! Repellat nam vitae omnis impedit, ab commodi minus debitis quisquam.
Итого:
border
: задаем границуmargin
: задаем внешние отступыpadding
: задаем внутренние отступы
Lorem ipsum dolor sit amet consectetur, adipisicing elit.
Lorem ipsum dolor sit amet consectetur, adipisicing elit.
/* css */
p {
border: 3px dashed red;
margin: 30px;
padding: 20px;
}
Lorem ipsum dolor sit amet consectetur, adipisicing elit.
Lorem ipsum dolor sit amet consectetur, adipisicing elit.
Несколько параграфов друг за другом. Эффект схлопывания внешних отступов
Lorem ipsum dolor sit amet consectetur, adipisicing elit.
Lorem ipsum dolor sit amet consectetur, adipisicing elit.
/* css */
p {
border: 3px dashed red;
margin: 30px;
padding: 20px;
}
Lorem ipsum dolor sit amet consectetur, adipisicing elit.
Lorem ipsum dolor sit amet consectetur, adipisicing elit.
Основные свойства блочных элементов
<a><h1>Заголовок</h1></a>
не пройдёт валидацию, правильно вложить теги наоборот —
<h1><a>Заголовок</a></h1>
.
box-sizing: border-box
)
box-sizing: border-box
)
/* css */
/* empty for now */
/* css */
/* empty for now */
Добавим еще один элемент
/* css */
/* empty for now */
И еще один элемент
/* css */
/* empty for now */
Несколько строчных элементов идущих подряд располагаются на одной строке и переносятся на другую строку при необходимости.
/* css */
/* empty for now */
Рассмотрим свойство vertical-align
/* css */
img {
vertical-align: middle;
}
vertical-align: middle
/* css */
img {
vertical-align: top;
}
vertical-align: top
/* css */
img {
vertical-align: bottom;
}
vertical-align: bottom
Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem
necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias
doloribus fugit nesciunt alias. Quidem, sint!
/* css */
/* empty for now */
Текст со ссылками a
Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem
necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias
doloribus fugit nesciunt alias. Quidem, sint!
/* css */
/* empty for now */
Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias doloribus fugit nesciunt alias. Quidem, sint!
Текст с тегами span
Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem
necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias
doloribus fugit nesciunt alias. Quidem, sint!
/* css */
/* empty for now */
Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias doloribus fugit nesciunt alias. Quidem, sint!
На самом деле вот они
Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem
necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias
doloribus fugit nesciunt alias. Quidem, sint!
/* css */
p span {
border: 3px dashed red;
}
Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias doloribus fugit nesciunt alias. Quidem, sint!
Зададим собственную границу для видимости
Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem
necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias
doloribus fugit nesciunt alias. Quidem, sint!
/* css */
p span {
border: 3px dashed red;
color: blue;
}
Lorem ipsum dolor sit amet consectetur adipisicing elit. Maxime dicta iusto quidem necessitatibus natus aut voluptas quia, aperiam, quas mollitia nostrum dolores sunt molestias doloribus fugit nesciunt alias. Quidem, sint!
А также поменяем цвет
/* css */
/* empty for now */
Основные свойства строчных элементов
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
/* css */
/* empty for now */
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
/* css */
p {
color: red;
}
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Все параграфы имеют красный цвет
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
/* css */
p {
color: red;
font-style: italic;
}
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
а также курсивное начертание
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
/* css */
article p {
color: red;
font-style: italic;
}
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Ссылаемся на все параграфы внутри тега <article>
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
/* css */
div > p {
color: red;
font-style: italic;
}
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Ссылаемся на все параграфы внутри тега <div>
, на первом уровне вложенности
Есть ли способо сослаться на конкретный html элемент?
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
/* css */
#my-id {
color: red;
font-style: italic;
}
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Да. Через аттрибут id
id
должны быть уникальными в рамках html
страницы
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
/* css */
*[id="my-id"] {
color: red;
font-style: italic;
}
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Другой способ, но эквивалентный результат. Мы можем использовать данный пример для того, чтобы сослаться на любую node по имени аттрибуда и его значению
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
/* css */
.my-class {
color: red;
font-style: italic;
}
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Сослаться на все элементы определенного "класса". Нет ограничения на уникальность
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
/* css */
*[class="my-class"] {
color: red;
font-style: italic;
}
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Lorem ipsum dolor sit amet consectetur adipisicing elit
Эквивалент
/* css */
/* empty for now */
/* css */
.figures {
padding: 20px;
border: 3px dashed blue;
}
.figures > * {
border: 3px solid red;
margin: 10px auto;
}
.figures .circle {
width: 40px;
height: 40px;
border-radius: 50%;
}
.figures .rectangle {
width: 70px;
height: 40px;
}
Теперь мы можем переиспользовать разметку
/* css */
.figures {
padding: 20px;
border: 3px dashed blue;
}
.figures > * {
border: 3px solid red;
margin: 10px auto;
}
.figures .circle {
width: 40px;
height: 40px;
border-radius: 50%;
}
.figures .rectangle {
width: 70px;
height: 40px;
}
Просто добавим еще один блок с фигурами
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
/* css */
p {
color: blue;
font-style: italic;
text-decoration: underline;
}
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
/* css */
article p {
color: red;
}
p {
color: blue;
font-style: italic;
text-decoration: underline;
}
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Коллизия по цвету параграфов в каскаде. Применяется свойство, чей селектор более специфичен
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
/* css */
article p {
color: red;
}
p {
color: blue !important;
font-style: italic;
text-decoration: underline;
}
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Повышаем специфичность используя !important
. Используйте только когда это действительно нужно