0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Представьте себе процесс строительства дома. Условно его можно разделить на несколько этапов: возведение структуры дома и его отделка. При возведении дома мы заливаем фундамент, возводим стены, устанавливаем крышу. После этого уже переходим к покраске дома, устанавливаем окна и занимаемся декорированием.</p>
1
<p>Представьте себе процесс строительства дома. Условно его можно разделить на несколько этапов: возведение структуры дома и его отделка. При возведении дома мы заливаем фундамент, возводим стены, устанавливаем крышу. После этого уже переходим к покраске дома, устанавливаем окна и занимаемся декорированием.</p>
2
<p>Процесс создания верстки можно описать похожими процессами. В ней так же важна роль возведения структуры и отделки. Для этого существуют несколько основных типов элементов:</p>
2
<p>Процесс создания верстки можно описать похожими процессами. В ней так же важна роль возведения структуры и отделки. Для этого существуют несколько основных типов элементов:</p>
3
<ul><li><strong>Блочные элементы (Block level)</strong>. Эти элементы отвечают за каркас страницы.</li>
3
<ul><li><strong>Блочные элементы (Block level)</strong>. Эти элементы отвечают за каркас страницы.</li>
4
<li><strong>Строчные элементы (Inline level)</strong>. Они помогают нам в процессе стилизации страницы или добавления функциональных частей.</li>
4
<li><strong>Строчные элементы (Inline level)</strong>. Они помогают нам в процессе стилизации страницы или добавления функциональных частей.</li>
5
</ul><p><strong>Важно:</strong>сами по себе элементы HTML не являются блочными или строчными. HTML - всего лишь разметка. За то, будет элемент блочным или строчным, отвечает CSS. Для всех HTML-тегов существуют стандартные модели вывода, которые по умолчанию настроены в браузере, поэтому понятие блочных и строчных элементов обычно соотносят с определенными тегами, так как они имеют стандартное поведение при добавлении на страницу. В уроках соответствие тегов и значения условно, так как это поведение легко изменить с помощью CSS свойства display.</p>
5
</ul><p><strong>Важно:</strong>сами по себе элементы HTML не являются блочными или строчными. HTML - всего лишь разметка. За то, будет элемент блочным или строчным, отвечает CSS. Для всех HTML-тегов существуют стандартные модели вывода, которые по умолчанию настроены в браузере, поэтому понятие блочных и строчных элементов обычно соотносят с определенными тегами, так как они имеют стандартное поведение при добавлении на страницу. В уроках соответствие тегов и значения условно, так как это поведение легко изменить с помощью CSS свойства display.</p>
6
<h2>Блочные элементы</h2>
6
<h2>Блочные элементы</h2>
7
<p>Основная особенность блочных элементов - они занимают всю доступную им ширину. Из-за этого другие элементы до и после блочных элементов не встают в один ряд с ними, а располагаются до или после них, но уже на другой строке.</p>
7
<p>Основная особенность блочных элементов - они занимают всю доступную им ширину. Из-за этого другие элементы до и после блочных элементов не встают в один ряд с ними, а располагаются до или после них, но уже на другой строке.</p>
8
<p>Представьте, что у вас есть шкаф и коробки с шириной, равной ширине шкафа. В этом случае мы не можем поставить коробки рядом друг с другом, так как для этого у нас не будет пространства. Единственное решение - класть коробки друг на друга. Блочные элементы ведут себя точно таким же образом.</p>
8
<p>Представьте, что у вас есть шкаф и коробки с шириной, равной ширине шкафа. В этом случае мы не можем поставить коробки рядом друг с другом, так как для этого у нас не будет пространства. Единственное решение - класть коробки друг на друга. Блочные элементы ведут себя точно таким же образом.</p>
9
<p>В<em>HTML-разметке</em>такие коробки могли бы выглядеть следующим образом:</p>
9
<p>В<em>HTML-разметке</em>такие коробки могли бы выглядеть следующим образом:</p>
10
<p>На примере этой разметки уже стало понятно, что элемент <div> является блочным элементом. Он занимает всю доступную ширину, и из-за этого другие элементы не встают с ним в один ряд.</p>
10
<p>На примере этой разметки уже стало понятно, что элемент <div> является блочным элементом. Он занимает всю доступную ширину, и из-за этого другие элементы не встают с ним в один ряд.</p>
11
<p>Стоит отдельно отметить понятие<em>"занимает всю доступную ширину"</em>. Что же именно скрывается за этой доступной шириной? Ширина всей страницы, ширина экрана или ширина дороги близ деревни Ракушки? На самом деле доступная ширина - вся доступная ширина<strong>родителя</strong>. То есть, если наш блок лежит внутри <body>, то эта ширина будет равна именно ширине <body>. Стоит изменить ширину <body>, как сразу изменится и ширина блочного элемента внутри.</p>
11
<p>Стоит отдельно отметить понятие<em>"занимает всю доступную ширину"</em>. Что же именно скрывается за этой доступной шириной? Ширина всей страницы, ширина экрана или ширина дороги близ деревни Ракушки? На самом деле доступная ширина - вся доступная ширина<strong>родителя</strong>. То есть, если наш блок лежит внутри <body>, то эта ширина будет равна именно ширине <body>. Стоит изменить ширину <body>, как сразу изменится и ширина блочного элемента внутри.</p>
12
<p>Какие же еще элементы являются блочными? На самом деле их так много, что просто делать перечисление не очень верно. В процессе углубления в верстку вы сами обнаружите, какие элементы являются блочными. Основными же блочными элементами являются:</p>
12
<p>Какие же еще элементы являются блочными? На самом деле их так много, что просто делать перечисление не очень верно. В процессе углубления в верстку вы сами обнаружите, какие элементы являются блочными. Основными же блочными элементами являются:</p>
13
<ul><li><div></li>
13
<ul><li><div></li>
14
<li><p></li>
14
<li><p></li>
15
<li>Теги списков: <ul>/<ol>/<li></li>
15
<li>Теги списков: <ul>/<ol>/<li></li>
16
<li>Заголовки: <h1>/<h2>/<h3>/<h4>/<h5>/<h6></li>
16
<li>Заголовки: <h1>/<h2>/<h3>/<h4>/<h5>/<h6></li>
17
</ul><p>Внутрь блочных элементов мы можем вкладывать другие блочные элементы. Это позволяет нам делать сложную верстку, оперируя различными компонентами, которые будут созданы.</p>
17
</ul><p>Внутрь блочных элементов мы можем вкладывать другие блочные элементы. Это позволяет нам делать сложную верстку, оперируя различными компонентами, которые будут созданы.</p>
18
<p>Как вы видите, внутрь блочных элементов <div> мы положили другие такие же блоки, а также заголовок и параграф. Такая вложенность может достигать любого уровня.</p>
18
<p>Как вы видите, внутрь блочных элементов <div> мы положили другие такие же блоки, а также заголовок и параграф. Такая вложенность может достигать любого уровня.</p>
19
<p><strong>Важно:</strong>хоть HTML и позволяет бесконечно вкладывать блоки друг в друга, лучше сохранять здравый смысл. Дело в том, что процесс вывода верстки достаточно долгий для браузеров. На это тратится довольно много ресурсов. И чем больше вложенность блоков друг в друга, тем сложнее браузеру и компьютеру все это обработать</p>
19
<p><strong>Важно:</strong>хоть HTML и позволяет бесконечно вкладывать блоки друг в друга, лучше сохранять здравый смысл. Дело в том, что процесс вывода верстки достаточно долгий для браузеров. На это тратится довольно много ресурсов. И чем больше вложенность блоков друг в друга, тем сложнее браузеру и компьютеру все это обработать</p>
20
<p>Вложенность блочных элементов друг в друга ограничена только несколькими пунктами:</p>
20
<p>Вложенность блочных элементов друг в друга ограничена только несколькими пунктами:</p>
21
<ol><li>Нельзя вкладывать заголовки в заголовки</li>
21
<ol><li>Нельзя вкладывать заголовки в заголовки</li>
22
<li>Нельзя вкладывать параграфы в параграфы</li>
22
<li>Нельзя вкладывать параграфы в параграфы</li>
23
</ol><p>Скорее всего с этим у вас проблем не возникнет, так как представить себе ситуацию с заголовком внутри заголовка достаточно трудно.</p>
23
</ol><p>Скорее всего с этим у вас проблем не возникнет, так как представить себе ситуацию с заголовком внутри заголовка достаточно трудно.</p>
24
<p>Для создания блочного элемента используется тег <div>. Он не имеет никаких дополнительных стилей, кроме блочного отображения. Этим тегом оборачивается связанная информация, создаются каркасы компонентов. Но тег не является семантичным, то есть не несет смысловой нагрузки. Подробнее о семантических элементах будет в следующем уроке</p>
24
<p>Для создания блочного элемента используется тег <div>. Он не имеет никаких дополнительных стилей, кроме блочного отображения. Этим тегом оборачивается связанная информация, создаются каркасы компонентов. Но тег не является семантичным, то есть не несет смысловой нагрузки. Подробнее о семантических элементах будет в следующем уроке</p>
25
<h2>Строчные элементы</h2>
25
<h2>Строчные элементы</h2>
26
<p>Строчные элементы являются отделочным материалом, с помощью которого мы можем выделить участки текста, или добавить немного логики, как в случае со ссылками. Строчные элементы противоположны блочным. Они не занимают всю доступную ширину и из-за этого не происходит переноса соседних элементов.</p>
26
<p>Строчные элементы являются отделочным материалом, с помощью которого мы можем выделить участки текста, или добавить немного логики, как в случае со ссылками. Строчные элементы противоположны блочным. Они не занимают всю доступную ширину и из-за этого не происходит переноса соседних элементов.</p>
27
<p>Давайте добавим в прошлый пример строчный элемент:</p>
27
<p>Давайте добавим в прошлый пример строчный элемент:</p>
28
<p>Что произошло? Мы обернули слово<em>здесь</em>в ссылку, которая уведет пользователя в указанное место. Что произойдет в браузере при добавлении этого тега? Ссылка станет синего цвета и появится подчеркивание. Но сам текст останется на месте, так как ширина ссылки будет равна ширине слова<em>здесь</em>.</p>
28
<p>Что произошло? Мы обернули слово<em>здесь</em>в ссылку, которая уведет пользователя в указанное место. Что произойдет в браузере при добавлении этого тега? Ссылка станет синего цвета и появится подчеркивание. Но сам текст останется на месте, так как ширина ссылки будет равна ширине слова<em>здесь</em>.</p>
29
<p>Если представить наши строчные элементы в виде коробок, то они расположатся следующим образом:</p>
29
<p>Если представить наши строчные элементы в виде коробок, то они расположатся следующим образом:</p>
30
<p>Это главная отличительная черта строчных элементов. Помимо этого есть важная особенность, связанная с применением свойств width и height в CSS. Для строчных элементов эти<em>свойства не работают</em>. Их применение не даст никакого эффекта.</p>
30
<p>Это главная отличительная черта строчных элементов. Помимо этого есть важная особенность, связанная с применением свойств width и height в CSS. Для строчных элементов эти<em>свойства не работают</em>. Их применение не даст никакого эффекта.</p>
31
<p>Наиболее часто используемыми строчными элементами являются:</p>
31
<p>Наиболее часто используемыми строчными элементами являются:</p>
32
<ul><li><span></li>
32
<ul><li><span></li>
33
<li><a></li>
33
<li><a></li>
34
<li>Теги выделения текста: <i>/<em>/<b>/<strong></li>
34
<li>Теги выделения текста: <i>/<em>/<b>/<strong></li>
35
</ul><p>Так же, как и блочные элементы, мы можем вкладывать строчные элементы внутрь строчных. Это распространенная практика, которая вам пригодится. Например:</p>
35
</ul><p>Так же, как и блочные элементы, мы можем вкладывать строчные элементы внутрь строчных. Это распространенная практика, которая вам пригодится. Например:</p>
36
<p>Используйте <span> для дополнительных стилей внутри блочных элементов, например параграфов. Например,</p>
36
<p>Используйте <span> для дополнительных стилей внутри блочных элементов, например параграфов. Например,</p>
37
<p>Теперь можно использовать <span> для создания дополнительных стилей, например для другого цвета или шрифта</p>
37
<p>Теперь можно использовать <span> для создания дополнительных стилей, например для другого цвета или шрифта</p>
38
<p><strong>Важно:</strong>не вкладывайте внутрь строчных элементов блочные. Это нарушает семантику и усложняет чтение кода</p>
38
<p><strong>Важно:</strong>не вкладывайте внутрь строчных элементов блочные. Это нарушает семантику и усложняет чтение кода</p>
39
<h2>Блочная модель документа</h2>
39
<h2>Блочная модель документа</h2>
40
<p>Еще до работы с CSS полезно понимать, как браузер выводит элементы на вашу страницу. Помимо естественных свойств высоты и ширины, любой элемент на странице может иметь следующие свойства:</p>
40
<p>Еще до работы с CSS полезно понимать, как браузер выводит элементы на вашу страницу. Помимо естественных свойств высоты и ширины, любой элемент на странице может иметь следующие свойства:</p>
41
<ul><li>padding - Внутренние отступы элемента</li>
41
<ul><li>padding - Внутренние отступы элемента</li>
42
<li>margin - Внешние отступы от элемента</li>
42
<li>margin - Внешние отступы от элемента</li>
43
<li>border - Видимые границы элемента</li>
43
<li>border - Видимые границы элемента</li>
44
</ul><p>Каждое из них не просто выполняет ту функцию, которая указана, но и напрямую влияет на конечные значения высоты и ширины элемента.</p>
44
</ul><p>Каждое из них не просто выполняет ту функцию, которая указана, но и напрямую влияет на конечные значения высоты и ширины элемента.</p>
45
<p>Представьте, что у нас есть прямоугольник 150 на 70 пикселей. Мы добавили к нему рамку в 2 пикселя, внутренний отступ в 10 пикселей с каждой стороны и по 20 пикселей внешнего отступа с каждой стороны.</p>
45
<p>Представьте, что у нас есть прямоугольник 150 на 70 пикселей. Мы добавили к нему рамку в 2 пикселя, внутренний отступ в 10 пикселей с каждой стороны и по 20 пикселей внешнего отступа с каждой стороны.</p>
46
<p>Сколько места будет занимать наш прямоугольник на странице? Для этого нам надо суммировать все значения.</p>
46
<p>Сколько места будет занимать наш прямоугольник на странице? Для этого нам надо суммировать все значения.</p>
47
<p><em>Ширина: 150px (начальная ширина) + 2px (граница справа) + 2px (граница слева) + 10px (внутренний отступ справа) + 10px (внутренний отступ слева) + 20px (Внешний отступ справа) + 20px (Внешний отступ слева) = 214px</em></p>
47
<p><em>Ширина: 150px (начальная ширина) + 2px (граница справа) + 2px (граница слева) + 10px (внутренний отступ справа) + 10px (внутренний отступ слева) + 20px (Внешний отступ справа) + 20px (Внешний отступ слева) = 214px</em></p>
48
<p><em>Высота: 70px (начальная высота) + 2px (граница сверху) + 2px (граница снизу) + 10px (внутренний отступ сверху) + 10px (внутренний отступ снизу) + 20px (Внешний отступ сверху) + 20px (Внешний отступ снизу) = 134px</em></p>
48
<p><em>Высота: 70px (начальная высота) + 2px (граница сверху) + 2px (граница снизу) + 10px (внутренний отступ сверху) + 10px (внутренний отступ снизу) + 20px (Внешний отступ сверху) + 20px (Внешний отступ снизу) = 134px</em></p>
49
<h2>Дополнительное задание</h2>
49
<h2>Дополнительное задание</h2>
50
<p>Воспользуйтесь любым онлайн-сервисом, который умеет преобразовывать HTML разметку. Например,<a>https://htmlcodeeditor.com/</a>.</p>
50
<p>Воспользуйтесь любым онлайн-сервисом, который умеет преобразовывать HTML разметку. Например,<a>https://htmlcodeeditor.com/</a>.</p>
51
<p>Вставьте в левую область следующую разметку:</p>
51
<p>Вставьте в левую область следующую разметку:</p>
52
<p>Попробуйте изменять блочные и строчные теги, добавлять и удалять их. Посмотрите, как будет меняться поведение.</p>
52
<p>Попробуйте изменять блочные и строчные теги, добавлять и удалять их. Посмотрите, как будет меняться поведение.</p>