Единицы rem в CSS

Единицы 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; }