Единицы em
не всегда удобны. Проблема
в том, что если сменить размер шрифта одному
тегу, то он изменится и всем его тегам-потомкам,
которые рассчитывают свой размер относительно
него.
Поэтому были введены единицы rem
.
Значения этих единиц всегда рассчитываются
относительно размера шрифта, заданного для
тега html
.
Как вы уже знаете, по умолчанию это значение
равно 16px
:
html {
font-size: 16px;
}
Давайте посмотрим на примере. Пусть у нас есть вот такие теги:
<div>
<p>
text
</p>
</div>
Давайте укажем им размеры в rem
:
div {
font-size: 2rem; /* соответствует 32px */
}
p {
font-size: 2rem; /* соответствует 32px */
margin: 2rem; /* соответствует 32px */
}
Практические задачи
Пусть у нас есть HTML код, для которого мы будем решать задачи:
<main>
<h1>header</h1>
<section>
<h2>header</h2>
<p>
text
</p>
<p>
text
</p>
</section>
<section>
<h2>header</h2>
<p>
text
</p>
<p>
text
</p>
</section>
</main>
Во всех задачах ниже перепишите в rem
все единицы, заданные в пикселях:
main {
margin: 64px auto 32px;
}
h1 {
font-size: 32px;
}
section {
font-size: 16px;
margin-bottom: 32px;
}
h2 {
font-size: 24px;
margin-bottom: 32px;
}
p {
font-size: 20px;
margin-bottom: 12px;
}