HTML Diff
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>На примере этой разметки уже стало понятно, что элемент &lt;div&gt; является блочным элементом. Он занимает всю доступную ширину, и из-за этого другие элементы не встают с ним в один ряд.</p>
10 <p>На примере этой разметки уже стало понятно, что элемент &lt;div&gt; является блочным элементом. Он занимает всю доступную ширину, и из-за этого другие элементы не встают с ним в один ряд.</p>
11 <p>Стоит отдельно отметить понятие<em>"занимает всю доступную ширину"</em>. Что же именно скрывается за этой доступной шириной? Ширина всей страницы, ширина экрана или ширина дороги близ деревни Ракушки? На самом деле доступная ширина - вся доступная ширина<strong>родителя</strong>. То есть, если наш блок лежит внутри &lt;body&gt;, то эта ширина будет равна именно ширине &lt;body&gt;. Стоит изменить ширину &lt;body&gt;, как сразу изменится и ширина блочного элемента внутри.</p>
11 <p>Стоит отдельно отметить понятие<em>"занимает всю доступную ширину"</em>. Что же именно скрывается за этой доступной шириной? Ширина всей страницы, ширина экрана или ширина дороги близ деревни Ракушки? На самом деле доступная ширина - вся доступная ширина<strong>родителя</strong>. То есть, если наш блок лежит внутри &lt;body&gt;, то эта ширина будет равна именно ширине &lt;body&gt;. Стоит изменить ширину &lt;body&gt;, как сразу изменится и ширина блочного элемента внутри.</p>
12 <p>Какие же еще элементы являются блочными? На самом деле их так много, что просто делать перечисление не очень верно. В процессе углубления в верстку вы сами обнаружите, какие элементы являются блочными. Основными же блочными элементами являются:</p>
12 <p>Какие же еще элементы являются блочными? На самом деле их так много, что просто делать перечисление не очень верно. В процессе углубления в верстку вы сами обнаружите, какие элементы являются блочными. Основными же блочными элементами являются:</p>
13 <ul><li>&lt;div&gt;</li>
13 <ul><li>&lt;div&gt;</li>
14 <li>&lt;p&gt;</li>
14 <li>&lt;p&gt;</li>
15 <li>Теги списков: &lt;ul&gt;/&lt;ol&gt;/&lt;li&gt;</li>
15 <li>Теги списков: &lt;ul&gt;/&lt;ol&gt;/&lt;li&gt;</li>
16 <li>Заголовки: &lt;h1&gt;/&lt;h2&gt;/&lt;h3&gt;/&lt;h4&gt;/&lt;h5&gt;/&lt;h6&gt;</li>
16 <li>Заголовки: &lt;h1&gt;/&lt;h2&gt;/&lt;h3&gt;/&lt;h4&gt;/&lt;h5&gt;/&lt;h6&gt;</li>
17 </ul><p>Внутрь блочных элементов мы можем вкладывать другие блочные элементы. Это позволяет нам делать сложную верстку, оперируя различными компонентами, которые будут созданы.</p>
17 </ul><p>Внутрь блочных элементов мы можем вкладывать другие блочные элементы. Это позволяет нам делать сложную верстку, оперируя различными компонентами, которые будут созданы.</p>
18 <p>Как вы видите, внутрь блочных элементов &lt;div&gt; мы положили другие такие же блоки, а также заголовок и параграф. Такая вложенность может достигать любого уровня.</p>
18 <p>Как вы видите, внутрь блочных элементов &lt;div&gt; мы положили другие такие же блоки, а также заголовок и параграф. Такая вложенность может достигать любого уровня.</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>Для создания блочного элемента используется тег &lt;div&gt;. Он не имеет никаких дополнительных стилей, кроме блочного отображения. Этим тегом оборачивается связанная информация, создаются каркасы компонентов. Но тег не является семантичным, то есть не несет смысловой нагрузки. Подробнее о семантических элементах будет в следующем уроке</p>
24 <p>Для создания блочного элемента используется тег &lt;div&gt;. Он не имеет никаких дополнительных стилей, кроме блочного отображения. Этим тегом оборачивается связанная информация, создаются каркасы компонентов. Но тег не является семантичным, то есть не несет смысловой нагрузки. Подробнее о семантических элементах будет в следующем уроке</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>&lt;span&gt;</li>
32 <ul><li>&lt;span&gt;</li>
33 <li>&lt;a&gt;</li>
33 <li>&lt;a&gt;</li>
34 <li>Теги выделения текста: &lt;i&gt;/&lt;em&gt;/&lt;b&gt;/&lt;strong&gt;</li>
34 <li>Теги выделения текста: &lt;i&gt;/&lt;em&gt;/&lt;b&gt;/&lt;strong&gt;</li>
35 </ul><p>Так же, как и блочные элементы, мы можем вкладывать строчные элементы внутрь строчных. Это распространенная практика, которая вам пригодится. Например:</p>
35 </ul><p>Так же, как и блочные элементы, мы можем вкладывать строчные элементы внутрь строчных. Это распространенная практика, которая вам пригодится. Например:</p>
36 <p>Используйте &lt;span&gt; для дополнительных стилей внутри блочных элементов, например параграфов. Например,</p>
36 <p>Используйте &lt;span&gt; для дополнительных стилей внутри блочных элементов, например параграфов. Например,</p>
37 <p>Теперь можно использовать &lt;span&gt; для создания дополнительных стилей, например для другого цвета или шрифта</p>
37 <p>Теперь можно использовать &lt;span&gt; для создания дополнительных стилей, например для другого цвета или шрифта</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>