HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>В этом уроке мы познакомимся с принципами, по которым элементы выводятся на страницу и получают определённый размер.</p>
1 <p>В этом уроке мы познакомимся с принципами, по которым элементы выводятся на страницу и получают определённый размер.</p>
2 <h3>display</h3>
2 <h3>display</h3>
3 <p>У элементов есть свойство display. Оно задаёт то, как элемент выводится на экран.</p>
3 <p>У элементов есть свойство display. Оно задаёт то, как элемент выводится на экран.</p>
4 <p><em>Здесь к слову display можно относиться как к глаголу: to display - показывать, выводить на экран.</em></p>
4 <p><em>Здесь к слову display можно относиться как к глаголу: to display - показывать, выводить на экран.</em></p>
5 <p><a>https://codepen.io/hexlet/pen/aLXVKB</a></p>
5 <p><a>https://codepen.io/hexlet/pen/aLXVKB</a></p>
6 <ul><li>display: block начинается с новой строки и занимает всю ширину</li>
6 <ul><li>display: block начинается с новой строки и занимает всю ширину</li>
7 <li>display: inline начинается в любом месте и занимает столько ширины, сколько нужно для помещения содержания</li>
7 <li>display: inline начинается в любом месте и занимает столько ширины, сколько нужно для помещения содержания</li>
8 </ul><p>Всего у этого свойства 20 возможных значений, но прямо сейчас остальные не так важны.</p>
8 </ul><p>Всего у этого свойства 20 возможных значений, но прямо сейчас остальные не так важны.</p>
9 <p>Браузер обычно применяет базовые стили по умолчанию ко многим элементам. Например, элемент p по умолчанию имеет display: block.</p>
9 <p>Браузер обычно применяет базовые стили по умолчанию ко многим элементам. Например, элемент p по умолчанию имеет display: block.</p>
10 <p>Разные браузеры могут задавать разные стили по умолчанию, и иногда эти стили могут отличаться. Поэтому одна и та же страница может выглядеть по-разному в разных браузерах. Это в основном касается размеров и отступов. Для решения этой проблемы существуют так называемые CSS Reset - наборы CSS-стилей, которые "сбрасывают" браузерные стили.</p>
10 <p>Разные браузеры могут задавать разные стили по умолчанию, и иногда эти стили могут отличаться. Поэтому одна и та же страница может выглядеть по-разному в разных браузерах. Это в основном касается размеров и отступов. Для решения этой проблемы существуют так называемые CSS Reset - наборы CSS-стилей, которые "сбрасывают" браузерные стили.</p>
11 <p>Вот<a>пример таких reset-стилей</a>.</p>
11 <p>Вот<a>пример таких reset-стилей</a>.</p>
12 <h3>div &amp; span</h3>
12 <h3>div &amp; span</h3>
13 <p>Элемент p имеет<strong>семантическое значение</strong>. Он определяет абзац текста.</p>
13 <p>Элемент p имеет<strong>семантическое значение</strong>. Он определяет абзац текста.</p>
14 <p>Такой элемент не стоит использовать там, где это по смыслу не имеет значения. Например, не стоит помещать в p меню с кнопками для навигации по сайту.</p>
14 <p>Такой элемент не стоит использовать там, где это по смыслу не имеет значения. Например, не стоит помещать в p меню с кнопками для навигации по сайту.</p>
15 <p>Два самых используемых элемента - div и span - не имеют семантического значения. Они нужны исключительно для структуры и стилей.</p>
15 <p>Два самых используемых элемента - div и span - не имеют семантического значения. Они нужны исключительно для структуры и стилей.</p>
16 <ul><li>div - это блочный (block-level) элемент, у него свойство display: block.</li>
16 <ul><li>div - это блочный (block-level) элемент, у него свойство display: block.</li>
17 <li>span - это строчный (inline-level) элемент, у него свойство display: inline.</li>
17 <li>span - это строчный (inline-level) элемент, у него свойство display: inline.</li>
18 </ul><p>Конечно, вы можете изменить эти свойства в своём CSS, но лучше так не делать. В целом,<strong>лучше не менять базовые свойства у типов элементов, а добавлять классы по необходимости</strong>.</p>
18 </ul><p>Конечно, вы можете изменить эти свойства в своём CSS, но лучше так не делать. В целом,<strong>лучше не менять базовые свойства у типов элементов, а добавлять классы по необходимости</strong>.</p>
19 <p>div обычно используется для определения какого-то крупного блока на странице. А span - для небольшого элемента на строке.</p>
19 <p>div обычно используется для определения какого-то крупного блока на странице. А span - для небольшого элемента на строке.</p>
20 <h3>Блочная модель</h3>
20 <h3>Блочная модель</h3>
21 <p><strong>Каждый элемент на странице - прямоугольник</strong>. Это, пожалуй, самое важное утверждение в вёрстке веб-страниц. В примере в начале этого урока это можно заметить: мы задали параграфам фоновый цвет, и стало видно: каждый параграф - это прямоугольник.</p>
21 <p><strong>Каждый элемент на странице - прямоугольник</strong>. Это, пожалуй, самое важное утверждение в вёрстке веб-страниц. В примере в начале этого урока это можно заметить: мы задали параграфам фоновый цвет, и стало видно: каждый параграф - это прямоугольник.</p>
22 <p>У каждого прямоугольника есть несколько свойств, влияющих на размер:</p>
22 <p>У каждого прямоугольника есть несколько свойств, влияющих на размер:</p>
23 <ul><li>width, height - ширина и высота элемента</li>
23 <ul><li>width, height - ширина и высота элемента</li>
24 <li>padding - отступ внутри элемента (расстояние от содержания до границы прямоугольника)</li>
24 <li>padding - отступ внутри элемента (расстояние от содержания до границы прямоугольника)</li>
25 <li>border - толщина границы (обводки)</li>
25 <li>border - толщина границы (обводки)</li>
26 <li>margin - отступ снаружи элемента (расстояние от границы прямоугольника до соседних элементов)</li>
26 <li>margin - отступ снаружи элемента (расстояние от границы прямоугольника до соседних элементов)</li>
27 </ul><p>Давайте сделаем элемент, в котором явно видно все эти части:</p>
27 </ul><p>Давайте сделаем элемент, в котором явно видно все эти части:</p>
28 <p><a>https://codepen.io/hexlet/pen/qPgpwL</a></p>
28 <p><a>https://codepen.io/hexlet/pen/qPgpwL</a></p>
29 <p>Мы использовали значение inline-block у свойства display. Это в какой-то степени комбинация inline и block. Элемент не занимает всю ширину и может находится на одной строке с другими элементами. При этом у него можно задать параметры, свойственные block: конкретную ширину и высоту.</p>
29 <p>Мы использовали значение inline-block у свойства display. Это в какой-то степени комбинация inline и block. Элемент не занимает всю ширину и может находится на одной строке с другими элементами. При этом у него можно задать параметры, свойственные block: конкретную ширину и высоту.</p>
30 <p>Сколько же места требуется всему элементу? Нужно сложить показатели:</p>
30 <p>Сколько же места требуется всему элементу? Нужно сложить показатели:</p>
31 <ul><li><strong>Высота</strong>: высота элемента + внутренний отступ + толщина границы + внешний отступ (height + padding + border + margin) - 70 + 10 + 8 + 15 =<strong>103px</strong>.</li>
31 <ul><li><strong>Высота</strong>: высота элемента + внутренний отступ + толщина границы + внешний отступ (height + padding + border + margin) - 70 + 10 + 8 + 15 =<strong>103px</strong>.</li>
32 <li><strong>Ширина</strong>: ширина элемента + внутренний отступ + толщина границы + внешний отступ (width + padding + border + margin) - 100 + 10 + 0 + 15 =<strong>125</strong>.</li>
32 <li><strong>Ширина</strong>: ширина элемента + внутренний отступ + толщина границы + внешний отступ (width + padding + border + margin) - 100 + 10 + 0 + 15 =<strong>125</strong>.</li>
33 </ul><p>Границы и отступы можно задать свои для каждой из сторон:</p>
33 </ul><p>Границы и отступы можно задать свои для каждой из сторон:</p>
34  
34