Przelicz piksele na rem z dowolną bazą
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.
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.

Ile rem mają popularne wartości w pikselach?
| Wartość w pikselach | Baza 16 px (domyślna) | Baza 10 px (62,5%) | Baza 20 px (powiększony tekst) |
|---|---|---|---|
| 1 px | 0,0625 rem | 0,1 rem | 0,05 rem |
| 2 px | 0,125 rem | 0,2 rem | 0,1 rem |
| 4 px | 0,25 rem | 0,4 rem | 0,2 rem |
| 6 px | 0,375 rem | 0,6 rem | 0,3 rem |
| 8 px | 0,5 rem | 0,8 rem | 0,4 rem |
| 10 px | 0,625 rem | 1 rem | 0,5 rem |
| 12 px | 0,75 rem | 1,2 rem | 0,6 rem |
| 14 px | 0,875 rem | 1,4 rem | 0,7 rem |
| 16 px | 1 rem | 1,6 rem | 0,8 rem |
| 18 px | 1,125 rem | 1,8 rem | 0,9 rem |
| 20 px | 1,25 rem | 2 rem | 1 rem |
| 22 px | 1,375 rem | 2,2 rem | 1,1 rem |
| 24 px | 1,5 rem | 2,4 rem | 1,2 rem |
| 28 px | 1,75 rem | 2,8 rem | 1,4 rem |
| 30 px | 1,875 rem | 3 rem | 1,5 rem |
| 32 px | 2 rem | 3,2 rem | 1,6 rem |
| 36 px | 2,25 rem | 3,6 rem | 1,8 rem |
| 40 px | 2,5 rem | 4 rem | 2 rem |
| 44 px | 2,75 rem | 4,4 rem | 2,2 rem |
| 48 px | 3 rem | 4,8 rem | 2,4 rem |
| 56 px | 3,5 rem | 5,6 rem | 2,8 rem |
| 60 px | 3,75 rem | 6 rem | 3 rem |
| 64 px | 4 rem | 6,4 rem | 3,2 rem |
| 72 px | 4,5 rem | 7,2 rem | 3,6 rem |
| 80 px | 5 rem | 8 rem | 4 rem |
| 96 px | 6 rem | 9,6 rem | 4,8 rem |
| 128 px | 8 rem | 12,8 rem | 6,4 rem |
| 160 px | 10 rem | 16 rem | 8 rem |
| 192 px | 12 rem | 19,2 rem | 9,6 rem |
| 256 px | 16 rem | 25,6 rem | 12,8 rem |
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.

Które właściwości przenosić na rem, a które zostawić w pikselach?
| Właściwość CSS | Przenosić na rem? | Dlaczego |
|---|---|---|
| font-size | Tak | To sedno całego zabiegu – stopień pisma ma reagować na ustawienie przeglądarki |
| padding i margin | Tak | Odstęp wokół tekstu powinien rosnąć razem z nim, inaczej przy większym stopniu robi się ciasno |
| width kolumny tekstu | Tak | Długość wiersza liczy się w znakach, więc szerokość ma iść za rozmiarem pisma |
| line-height | Nie, bez jednostki | Sam mnożnik, na przykład 1.5, dziedziczy się poprawnie w każdym zagnieżdżeniu |
| border-width | Nie | Włos obramowania ma zostać włosem, niezależnie od stopnia pisma |
| box-shadow | Nie | Cień jest efektem graficznym i nie ma związku z rozmiarem tekstu |
| border-radius | Zwykle nie | Promień zaokrąglenia opisuje kształt elementu, a nie jego treść |
| punkty odcięcia media queries | Tak, ale w em | W zapytaniu o media przeglądarka liczy od domyślnego rozmiaru tekstu, a nie od elementu html, więc em daje tam przewidywalny wynik[3] |
Piksel i rem – porównanie
| Cecha | px | rem |
|---|---|---|
| Punkt odniesienia | Brak, wartość bezwzględna | Font-size elementu html |
| Wartość domyślna | 1 px = 1/96 cala | 1 rem = 16 px |
| Reakcja na ustawienia czytelnika | Pozostaje bez zmian | Skaluje się razem z nimi |
| Gdzie się go podaje | Makiety, programy graficzne, pliki obrazów | Arkusze stylów, systemy projektowe |
| Typowe zastosowanie | Obramowania, cienie, grubości linii | Stopnie pisma, odstępy, szerokości |
| Automatyzacja | Wartość wpisana wprost | Funkcja w preprocesorze albo wtyczka w kroku budowania |
Kiedy przeliczysz piksele na rem?
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.Ustawienie skali projektu
Zamiast przeliczać przy każdej regule, raz definiujesz zmienne CSS albo funkcję w preprocesorze i odwołujesz się do nazw.Przepisanie starego arkusza
Przy migracji z pikseli na rem przeliczasz stopnie pisma i odstępy, a obramowania oraz cienie zostawiasz bez zmian.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
- CSS Values and Units Module Level 4 — W3C
- postcss-pxtorem — npm
- CSS values and units – length — MDN Web Docs
- 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%.

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