Конвертер пікселів (px) у rem

Зміст востаннє перевірено:

Розмір 24 px дорівнює 1,5 rem за типової бази 16 px, а 14 px дорівнює 0,875 rem. Розрахунок складається з одного ділення: розмір у пікселях поділений на базовий розмір шрифту. Введіть розмір із макета в перше поле, а якщо ваша сторінка має іншу базу, впишіть її в поле Базовий font-size.

px
rem
в

Що таке rem і чому розміри в пікселях записують у rem?

Макети дають розміри в пікселях: заголовок 28 px, відстань між розділами 32 px. Піксель у CSS — стала одиниця, яку стандарт визначає як 1/96 дюйма[1]. Тому конвертер px у дюйми за своєї типової роздільної здатності рахує 96 пікселів в одному дюймі. rem є відносною одиницею: один rem дорівнює обчисленому розміру шрифту елемента html, кореневого елемента сторінки[1].

Оскільки rem завжди рахують від кореневого елемента, у вкладених елементах він не накопичується, як em, який переводить конвертер em у px. Щоб перевести будь-який розмір із пікселів у rem, досить знати розмір шрифту елемента html. Після переведення розмір іде за налаштуванням читача: заголовок 24 px лишається 24 px за типових налаштувань і стає 30 px у читача, який вибрав Великий у Chrome чи Великий розмір шрифту в Edge.

Код CSS з правилом .hero з розміром шрифту 60px і правилом для заголовків з розміром 220px
Обидва розміри шрифту на цьому фото записано в пікселях: 60px у правилі .hero і 220px у правилі, що об’єднує класи .heading та .sub-heading. За бази 16 px перший стає 3.75rem, другий 13.75rem, і далі обидва збільшуються разом із налаштуванням читача. Фото: Ferenc Almasi, Unsplash.

Скільки rem у 24 px?

24 px дорівнюють 1,5 rem за типової бази 16 px. Формула складається з одного ділення: rem = px ÷ базовий розмір шрифту. Кожні 16 px дають 1 rem, а один піксель дорівнює 0,0625 rem. Отже, 8 px дорівнюють 0,5 rem. А 32 px дорівнюють 2 rem.

Якщо таблиця стилів має іншу базу, діліть на неї. З технікою 62,5% база стає 10 px, і 24 px дорівнюють 2,4 rem. За бази 20 px ті самі 24 px дорівнюють 1,2 rem. Впишіть базу в третє поле, і конвертер дасть значення, яке ви запишете в таблицю стилів.

Деякі розміри не діляться на 16 без остачі, тому результат показано щонайбільше з чотирма знаками після коми. Наприклад, 13 px дорівнюють 0,8125 rem, і CSS приймає це число таким, як є. Поле результату показує кому, а кнопка Копіювати результат копіює 0.8125 з крапкою, тож число можна одразу вставити й дописати після нього rem.

За якою формулою пікселі переводять у rem?

Формула має вигляд rem = px ÷ font-size, де font-size означає розмір шрифту елемента html. Візьміть заголовок 28 px із макета. За бази 16 px виходить 28 ÷ 16 = 1,75, тож у таблиці стилів ви пишете font-size: 1.75rem.

Розміри, що діляться на 4 без остачі, дають значення щонайбільше з двома знаками після коми: наприклад, 12 px дорівнюють 0,75 rem. Інші парні розміри дають три знаки, як 14 px, що дорівнюють 0,875 rem, а непарні дають чотири, як 15 px, що дорівнюють 0,9375 rem. Розмір на зразок 13,5 px дає й п’ятий знак після коми, тому результат округлюється до чотирьох знаків і дорівнює 0,8438 rem.

Для зворотного напрямку скористайтеся конвертером rem у px. Якщо вам потрібне значення відносно розміру шрифту батьківського елемента, переведіть розмір у конвертері px в em. Якщо розмір у файлі записано в пунктах (pt), спершу переведіть його в пікселі в конвертері pt у px.

Стиснутий код CSS з розмірами в пікселях, як-от font-size:13px і margin:16px 0 20px
Це стиснута таблиця стилів, у якій усі видимі розміри записано в пікселях. За бази 16 px font-size:13px стає 0.8125rem. А margin:16px 0 20px стає 1rem 0 1.25rem. Фото: Rahul Mishra, Unsplash.

Таблиця переведення px у rem за трьох базових розмірів

Таблиця містить розміри від 1 до 400 px. Перший стовпець показує типову базу 16 px, другий показує техніку 62,5%, що робить базу 10 px, а третій показує базу 20 px у читача, який вибрав Великий у Chrome. Виділено рядки 16 px і 24 px.
Розмір у пікселяхrem за бази 16 pxrem за бази 10 pxrem за бази 20 px
1 px0,0625 rem0,1 rem0,05 rem
2 px0,125 rem0,2 rem0,1 rem
4 px0,25 rem0,4 rem0,2 rem
6 px0,375 rem0,6 rem0,3 rem
8 px0,5 rem0,8 rem0,4 rem
10 px0,625 rem1 rem0,5 rem
11 px0,6875 rem1,1 rem0,55 rem
12 px0,75 rem1,2 rem0,6 rem
13 px0,8125 rem1,3 rem0,65 rem
14 px0,875 rem1,4 rem0,7 rem
15 px0,9375 rem1,5 rem0,75 rem
16 px1 rem1,6 rem0,8 rem
17 px1,0625 rem1,7 rem0,85 rem
18 px1,125 rem1,8 rem0,9 rem
20 px1,25 rem2 rem1 rem
22 px1,375 rem2,2 rem1,1 rem
24 px1,5 rem2,4 rem1,2 rem
25 px1,5625 rem2,5 rem1,25 rem
26 px1,625 rem2,6 rem1,3 rem
28 px1,75 rem2,8 rem1,4 rem
30 px1,875 rem3 rem1,5 rem
32 px2 rem3,2 rem1,6 rem
36 px2,25 rem3,6 rem1,8 rem
40 px2,5 rem4 rem2 rem
44 px2,75 rem4,4 rem2,2 rem
48 px3 rem4,8 rem2,4 rem
50 px3,125 rem5 rem2,5 rem
56 px3,5 rem5,6 rem2,8 rem
60 px3,75 rem6 rem3 rem
64 px4 rem6,4 rem3,2 rem
72 px4,5 rem7,2 rem3,6 rem
80 px5 rem8 rem4 rem
96 px6 rem9,6 rem4,8 rem
100 px6,25 rem10 rem5 rem
120 px7,5 rem12 rem6 rem
128 px8 rem12,8 rem6,4 rem
160 px10 rem16 rem8 rem
192 px12 rem19,2 rem9,6 rem
200 px12,5 rem20 rem10 rem
256 px16 rem25,6 rem12,8 rem
320 px20 rem32 rem16 rem
400 px25 rem40 rem20 rem
Кожну клітинку обчислив конвертер, поділивши розмір у пікселях на базу, і записав щонайбільше з чотирма знаками після коми, як у полі результату.

Як записати в rem рядки з таблиці стилів?

Кожен рядок записано в пікселях так, як він приходить із макета, а поруч наведено те саме значення в rem за бази 16 px і за бази 10 px техніки 62,5%. Стовпці значень містять код CSS, тому дроби в них записано через крапку.
Рядок у пікселяхrem за бази 16 pxrem за бази 10 px (62,5%)
font-size: 16px1rem1.6rem
font-size: 14px0.875rem1.4rem
font-size: 28px1.75rem2.8rem
padding: 12px 24px0.75rem 1.5rem1.2rem 2.4rem
margin-bottom: 32px2rem3.2rem
border-radius: 8px0.5rem0.8rem
max-width: 1200px75rem120rem
@media (min-width: 768px)48rem48rem
В останньому рядку значення лишається 48rem в обох стовпцях. rem усередині медіазапиту рахується від початкового значення розміру шрифту, і правило, записане для елемента html, на нього не впливає[2]. Ми виміряли це в Chrome і Firefox на сторінці з технікою 62,5%: правило @media (min-width: 48rem) почало діяти за ширини 768 px. Коли ми збільшили розмір шрифту в браузері до 20 px, воно почало діяти за ширини 960 px.

Які записи приймає й обчислює конвертер px у rem?

Кожне поле приймає й обчислює кожен запис зі своєї частини цієї таблиці, тож виправляти розмір перед вставлянням не потрібно. Вставте його так, як скопіювали з макета чи таблиці стилів, з одиницею або без неї. Середній стовпець показує результат, який обчислив сам конвертер за бази 16 px.
Що ви вводите або вставляєтеРозрахунок конвертераЩо відбувається з цим записом
Перше поле: розмір у пікселях, база 16 px
241,5 remЛише число, як розмір виглядає на панелі вимірювань програми для дизайну.
24px1,5 remОдиниця впритул до числа: читаємо число, а px пропускаємо.
24 пікселі1,5 remОдиниця записана українською через пробіл: беремо число, а слово пропускаємо.
24зч1,5 remСлово px, набране на українській розкладці без перемикання мови, стає «зч»: беремо число.
13,50,8438 remРозмір із десятковою комою: результат видно з чотирма знаками після коми після округлення.
1 20075 remНерозривний пробіл між тисячами, як пишуть великі числа українською: розмір становить тисячу двісті пікселів.
1,2000,075 remКому на цій сторінці читаємо як десятковий знак, навіть якщо за нею три цифри, тож розмір становить 1,2 px, а під полем з’явиться підказка. Для тисячі двохсот напишіть 1200 або 1 200.
padding: 20px;1,25 remЦілий рядок із таблиці стилів: беремо число, а назву властивості й крапку з комою пропускаємо.
−8px-0,5 remТипографський мінус «−» перед числом читаємо як від’ємний знак, як у від’ємному відступі.
Поле «Базовий font-size»: конвертер обчислює базу
62,5%10 pxВідсоток, як ви пишете його для елемента html: 62,5% від типової бази 16 px дорівнює 10.
font-size: 18px18 pxРядок, скопійований із таблиці стилів: беремо 18 як базу.
Кожен запис ми перевірили в самому полі, перш ніж написати його тут. Якщо під полем з’явиться прохання ввести одне число, залиште в полі лише розмір.

Як перевести розміри з Figma або цілу таблицю стилів з px у rem?

Для кількох розмірів вистачить конвертера. Коли розмірів багато, програми для дизайну та інструменти збирання можуть обчислити rem самостійно.

  1. Розмір із макета

    Скопіюйте розмір у пікселях із панелі вимірювань і вставте його в перше поле. Якщо сторінка задає розмір шрифту для елемента html, впишіть його в поле Базовий font-size, перш ніж копіювати результат.
  2. Dev Mode у Figma

    На платних тарифах Dev Mode одразу показує розміри в rem. Назви тут подано англійською, як в інтерфейсі Figma. У розділі Code панелі Inspect натисніть Inspect settings поруч із меню мови й виберіть одиницю rem. Щоб змінити базу, виберіть там само Set unit scale… і впишіть базу у вікні Unit scale.
  3. Функція в Sass

    Sass ділить числа функцією math.div() з модуля sass:math[3]. Функція @function rem($px) { @return math.div($px, 16px) * 1rem; } робить rem(24px) рівним 1.5rem.
  4. PostCSS для цілої таблиці стилів

    Плагін postcss-pxtorem переводить px у rem у файлах CSS під час збирання[4]. Його типова база становить 16, і з типовими налаштуваннями він переводить лише властивості шрифту: font, font-size, line-height і letter-spacing. Медіазапити лишаються в пікселях.

Пікселі: переведення в інші одиниці

Джерела

  1. CSS Values and Units Module Level 4 — W3C
  2. Media Queries Level 4 — W3C
  3. sass:math — Sass
  4. postcss-pxtorem — GitHub
  5. <length> CSS type — MDN Web Docs
  6. Настанови з доступності вебвмісту (WCAG) 2.1 — W3C, переклад ПРООН в Україні

Усі значення в таблицях ми обчислили з визначень одиниць і перед публікацією перевірили розрахунком. Історичні дані та назви місцевих одиниць спираються на джерела, наведені вище.

Зміст востаннє перевірено: · підготувала й перевірила команда Arteon

Часті запитання про переведення px у rem

Скільки rem у 16 px?

16 px дорівнюють 1 rem за типової бази 16 px. З технікою 62,5%, тобто за бази 10 px, вони дорівнюють 1,6 rem.

Скільки rem у 14 px і в 12 px?

За бази 16 px 14 px дорівнюють 0,875 rem, а 12 px дорівнюють 0,75 rem.

Чи завжди 24 px дорівнюють 1,5 rem?

Це так лише за бази 16 px. Якщо сторінка задає елементу html інший розмір, діліть на нього: за бази 10 px 24 px дорівнюють 2,4 rem, а за бази 20 px дорівнюють 1,2 rem.

Чому ділимо саме на 16?

Бо 16 px є поширеним типовим розміром шрифту в браузерах, і користувач може змінити його у своїх налаштуваннях[5]. Під час нашого вимірювання саме цей розмір використовували Chrome, Edge і Firefox, доки налаштування не змінювали.

Чи змінює техніка 62,5% значення rem у медіазапитах?

Ні. Правило @media (min-width: 48rem) починає діяти від 768 px і з цією технікою, і без неї, бо rem у медіазапиті рахується від початкового значення розміру шрифту[2]. Тому межі медіазапитів переводьте, ділячи на 16.

Чим відрізняється переведення px у rem від переведення в em?

rem рахують від розміру шрифту елемента html, тож ви ділите на ту саму базу на всій сторінці. em рахують від розміру шрифту батьківського елемента, тож ви ділите на розмір батьківського елемента. Для цього розрахунку є конвертер px в em.

Чи записувати рамку 1px у rem?

Якщо рамка має лишатися завтовшки в один піксель за будь-яких налаштувань, лишіть 1px. Якщо записати 0.0625rem, у читача, який вибрав базу 20, її товщина стане 1,25 px. Плагін postcss-pxtorem теж лишає властивість border у пікселях за типових налаштувань[4].

Чи збільшується текст у rem разом із налаштуванням читача?

Так. Текст у rem збільшується разом із розміром шрифту, який читач вибирає в браузері, а текст у пікселях лишається тим самим. Критерій успішності 1.4.4 «Зміна розміру тексту» в WCAG стосується саме цього: розмір тексту можна змінювати до 200 відсотків без втрати вмісту або функціональності[6].

Знімок екрана безкоштовного інструмента Arteon: Конвертер пікселів (px) у rem

Допоможіть нам покращити наші інструменти

Знайшли розмір, який у вашому браузері дає інший результат, або маєте ідею для конвертера? Напишіть нам.