Przelicz piksele na rem z dowolną bazą

Ostatnia aktualizacja treści:

Przy domyślnym ustawieniu przeglądarki 24 piksele to 1,5 rem, a 14 pikseli to 0,875 rem. Wpisz wartość z makiety, ustaw bazowy font-size i przepisz wynik prosto do arkusza stylów. 32 px to na przykład 2 rem przy korzeniu 16.

px
rem
na

Po co przeliczać piksele na rem?

Piksele zamieniasz na rem przez jedno dzielenie: liczba pikseli przez bazowy font-size. Przy domyślnym ustawieniu przeglądarki baza wynosi 16 px, więc 24 piksele dają 1,5 rem, a 14 pikseli – 0,875 rem. Jednostka rem odnosi się do rozmiaru tekstu elementu html, czyli korzenia dokumentu[1].

To kierunek z codziennej pracy nad interfejsem. Makieta przychodzi z wymiarami w pikselach, bo tak liczą programy graficzne, a arkusz stylów zapisuje się w rem, żeby układ reagował na ustawienia czytelnika.

Wynik podajemy z dokładnością do czterech miejsc, ponieważ pojedynczy piksel to przy bazie 16 px równe 0,0625 rem, a stopnie pisma 14 i 18 px to 0,875 i 1,125 rem.

Dalej znajdziesz tabelę 30 wartości przy trzech bazach, sposób automatycznego przeliczania w projekcie oraz zestawienie właściwości CSS z odpowiedzią, którą z nich przenosić na rem. Drogę w przeciwną stronę obsługuje konwerter rem na piksele.

Jak policzyć piksele na rem ręcznie? Wzór i przykład

Wzór ma jedno działanie: rem = piksele ÷ bazowy font-size. To działanie odwrotne do mnożenia, które zamienia rem na piksele.

Przykład dla odstępu 20 px: przy bazie 16 wychodzi 20 ÷ 16 = 1,25 rem. Ta sama wartość przy bazie 10 px z techniki 62,5% daje 2 rem, bo dzielenie przez dziesięć robi się w pamięci.

Wartości z makiety mogą też dawać ułamki: 18 pikseli to 1,125 rem, 30 pikseli to 1,875 rem, a 22 piksele – 1,375 rem. Wszystkie trzy są dokładne, więc wpisujesz je do arkusza wprost.

Jednostkę em liczy się tak samo, tylko dzieląc przez font-size rodzica zamiast korzenia dokumentu – ten rachunek wykonuje konwerter pikseli na em. Jeżeli wymiar ma trafić na papier, ten sam plik przelicza przelicznik pikseli i DPI.

Kod CSS z deklaracjami font-size: 14px i font-size: 0.875rem zapisanymi jedna pod drugą
W tej regule rozmiar pisma zapisano dwa razy, najpierw w pikselach, a linię niżej w rem, i przeglądarka stosuje późniejszą deklarację. Kilka linii niżej ta sama reguła ma padding: 15px 23px 14px. Przy bazie 16 px daje to 0,9375 rem, 1,4375 rem i 0,875 rem. Zdjęcie: Nick Karvounis, Unsplash.

Ile rem mają popularne wartości w pikselach?

Wartość w pikselachBaza 16 px (domyślna)Baza 10 px (62,5%)Baza 20 px (powiększony tekst)
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
12 px0,75 rem1,2 rem0,6 rem
14 px0,875 rem1,4 rem0,7 rem
16 px1 rem1,6 rem0,8 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
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
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
128 px8 rem12,8 rem6,4 rem
160 px10 rem16 rem8 rem
192 px12 rem19,2 rem9,6 rem
256 px16 rem25,6 rem12,8 rem
Trzy bazy pokrywają trzy sytuacje: 16 px to ustawienie domyślne przeglądarki, 10 px wychodzi z techniki 62,5%, a 20 px oznacza tekst powiększony w ustawieniach przeglądarki.

Jak przeliczać piksele na rem automatycznie w projekcie?

Przy pojedynczej wartości wystarczy konwerter powyżej. Przy całym arkuszu stylów ten rachunek przenosi się do narzędzia, które wykonuje go przy każdym budowaniu projektu.

W preprocesorze zapisujesz funkcję, która dzieli podaną liczbę przez bazę. W Sassie wygląda to tak: @function rem($px) { @return math.div($px, 16) * 1rem; }, a potem w regule piszesz padding: rem(24) i dostajesz 1.5rem. Wartość bazy jest wtedy zapisana w jednym miejscu i zmienia się ją raz.

Drugi sposób działa na gotowym arkuszu i nie wymaga zmiany sposobu pisania. Wtyczka postcss-pxtorem, dołączana do kroku budowania, przechodzi przez wynikowy plik i zamienia piksele na rem według ustawionej bazy. W sierpniu 2026 roku rejestr npm odnotował ponad 880 tysięcy jego pobrań[2].

Trzecia droga to zmienne CSS. Zapisujesz --space-6: 1.5rem w jednym miejscu arkusza i odwołujesz się do nazwy zamiast do liczby. Wtedy przeliczenie wykonujesz raz, przy definiowaniu skali, a nie przy każdej regule.

Kod CSS z rozmiarami pisma 60px i 220px zapisanymi w pikselach
W tym arkuszu stylów rozmiary pisma zapisano w pikselach: 60px dla bloku .hero i 220px dla nagłówków. Przy bazie 16 px te wartości to 3,75 rem i 13,75 rem. Zdjęcie: Ferenc Almasi, Unsplash.

Które właściwości przenosić na rem, a które zostawić w pikselach?

Właściwość CSSPrzenosić na rem?Dlaczego
font-sizeTakTo sedno całego zabiegu – stopień pisma ma reagować na ustawienie przeglądarki
padding i marginTakOdstęp wokół tekstu powinien rosnąć razem z nim, inaczej przy większym stopniu robi się ciasno
width kolumny tekstuTakDługość wiersza liczy się w znakach, więc szerokość ma iść za rozmiarem pisma
line-heightNie, bez jednostkiSam mnożnik, na przykład 1.5, dziedziczy się poprawnie w każdym zagnieżdżeniu
border-widthNieWłos obramowania ma zostać włosem, niezależnie od stopnia pisma
box-shadowNieCień jest efektem graficznym i nie ma związku z rozmiarem tekstu
border-radiusZwykle niePromień zaokrąglenia opisuje kształt elementu, a nie jego treść
punkty odcięcia media queriesTak, ale w emW zapytaniu o media przeglądarka liczy od domyślnego rozmiaru tekstu, a nie od elementu html, więc em daje tam przewidywalny wynik[3]
Przy przepisywaniu istniejącego arkusza nie wszystko trzeba przeliczać. Zamiana pikseli na rem ma sens tam, gdzie wymiar ma rosnąć razem z tekstem czytelnika.

Piksel i rem – porównanie

Cechapxrem
Punkt odniesieniaBrak, wartość bezwzględnaFont-size elementu html
Wartość domyślna1 px = 1/96 cala1 rem = 16 px
Reakcja na ustawienia czytelnikaPozostaje bez zmianSkaluje się razem z nimi
Gdzie się go podajeMakiety, programy graficzne, pliki obrazówArkusze stylów, systemy projektowe
Typowe zastosowanieObramowania, cienie, grubości liniiStopnie pisma, odstępy, szerokości
AutomatyzacjaWartość wpisana wprostFunkcja w preprocesorze albo wtyczka w kroku budowania

Kiedy przeliczysz piksele na rem?

  1. Przepisanie makiety do kodu

    Projekt podaje odstęp 24 px, arkusz stylów ma dostać 1,5 rem. To droga z codziennej pracy nad interfejsem.
  2. Ustawienie skali projektu

    Zamiast przeliczać przy każdej regule, raz definiujesz zmienne CSS albo funkcję w preprocesorze i odwołujesz się do nazw.
  3. Przepisanie starego arkusza

    Przy migracji z pikseli na rem przeliczasz stopnie pisma i odstępy, a obramowania oraz cienie zostawiasz bez zmian.
  4. Sprawdzenie dostępności

    Wartości zapisane w rem rosną razem z rozmiarem tekstu ustawionym przez czytelnika. Kryterium WCAG 1.4.4 wymaga, żeby tekst dało się powiększyć bez utraty treści i funkcji, do 200%[4].

Konwertuj Piksele na inne jednostki

Źródła

  1. CSS Values and Units Module Level 4 — W3C
  2. postcss-pxtorem — npm
  3. CSS values and units – length — MDN Web Docs
  4. Understanding SC 1.4.4: Resize Text (WCAG 2.2) — W3C

Wszystkie wartości w tabelach wyliczyliśmy z definicji jednostek i sprawdziliśmy rachunkowo przed publikacją. Dane historyczne i nazwy lokalnych jednostek opieramy na źródłach wymienionych wyżej.

Ostatnia aktualizacja treści: · przygotował i sprawdził zespół Arteon

Najczęściej zadawane pytania

Ile rem ma 1 piksel?

Przy domyślnej bazie 16 px jeden piksel to 0,0625 rem. Przy bazie 10 px z techniki 62,5% ten sam piksel daje 0,1 rem, a przy powiększonym tekście 20 px – 0,05 rem. Kierunek odwrotny, z rem na piksele, liczy konwerter rem na piksele.

Jak przeliczyć piksele na rem?

Podziel liczbę pikseli przez bazowy font-size. Przy domyślnych 16 px wychodzi 24 ÷ 16 = 1,5 rem. Konwerter powyżej wykonuje to działanie dla dowolnej bazy od 1 do 100 px.

Ile rem ma 24 piksele?

1,5 rem przy bazie 16 px, 2,4 rem przy bazie 10 px i 1,2 rem przy bazie 20 px.

Ile rem ma 14 pikseli?

0,875 rem przy domyślnej bazie 16 px. Przy bazie 10 px to 1,4 rem, a przy bazie 20 px – 0,7 rem.

Ile rem ma 20 pikseli?

1,25 rem przy bazie 16 px. Przy bazie 10 px to okrągłe 2 rem, co bywa argumentem za techniką 62,5% w projektach o rozbudowanej skali odstępów.

Ile rem ma 12 pikseli?

0,75 rem przy bazie 16 px. Przy bazie 10 px to 1,2 rem, a przy bazie 20 px – 0,6 rem.

Ile rem ma 40 pikseli?

2,5 rem przy bazie 16 px, 4 rem przy bazie 10 px i 2 rem przy bazie 20 px.

Ile rem ma 80 pikseli?

5 rem przy domyślnej bazie 16 px. Przy bazie 10 px wychodzi 8 rem, a przy 20 px – 4 rem.

Czy trzeba zaokrąglać wynik w rem?

Wartości takie jak 0,875 czy 1,875 rem zapisuje się wprost. Przeglądarka liczy je dokładnie, a zaokrąglenie do 0,88 rem przesunęłoby stopień pisma o ułamek piksela.

Jak przeliczać piksele na rem automatycznie?

W preprocesorze zapisujesz funkcję dzielącą przez bazę i piszesz rem(24) zamiast liczby. Na gotowym arkuszu działa wtyczka postcss-pxtorem dołączona do kroku budowania. Trzecia droga to zmienne CSS ze zdefiniowaną raz skalą odstępów.

Czy wszystko w arkuszu przeliczać na rem?

Stopnie pisma, odstępy i szerokości kolumn tekstu – tak, bo mają rosnąć razem z ustawieniem czytelnika. Obramowania, cienie i grubości linii zostają w pikselach, a wysokość wiersza zapisuje się bez jednostki, samym mnożnikiem. Odstępy, które mają podążać za lokalnym stopniem pisma, można zapisać w em, a te wartości policzy konwerter pikseli na em.

Jakiej jednostki używać w media queries?

Em. W zapytaniu o media przeglądarka liczy jednostki względne od domyślnego rozmiaru tekstu, a nie od wartości ustawionej na elemencie html, więc punkt odcięcia zapisany w em zachowuje się przewidywalnie także wtedy, gdy projekt korzysta z techniki 62,5%.

Zrzut ekranu darmowego narzędzia Arteon: Przelicz piksele na rem z dowolną bazą

Pomóż nam ulepszyć narzędzia

Masz pomysł na nową funkcję, widzisz błąd lub chcesz zaproponować inne narzędzie? Napisz do nas.