Rem, em – jednostki miary w css
Jednostki rem i em w CSS są niezwykle przydatne, jeśli chcesz tworzyć skalowalne, responsywne i dostępne interfejsy. Pomagają w zarządzaniu rozmiarem czcionek, marginesami, paddingiem i wieloma innymi właściwościami, bez konieczności używania sztywnych wartości pikselowych.
Czym są jednostki rem i em?
Obie jednostki są jednostkami względnymi, co oznacza, że ich wartości zależą od innych elementów na stronie.
-
em– odnosi się do rozmiaru czcionki swojego rodzica. -
rem– odnosi się do rozmiaru czcionki elementu<html>.
Czyli:
1emto 100% wielkości czcionki rodzica.1remto 100% wielkości czcionki ustawionej w<html>.
Jak działa em?
Jednostka em jest zależna od elementu nadrzędnego. Spójrzmy na przykład:
html {
font-size: 16px;
}
.parent {
font-size: 20px;
}
.child {
font-size: 1.5em; /* 1.5 × 20px = 30px */
}
1.5em oznacza 1.5 × rozmiar czcionki rodzica, czyli 1.5 × 20px = 30px.
Problemem em jest efekt zagnieżdżania. Jeśli ustawimy em w kilku poziomach, wartości mogą się nieoczekiwanie mnożyć:
.parent {
font-size: 2em; /* 2 × 16px = 32px */
}
.child {
font-size: 1.5em; /* 1.5 × 32px = 48px */
}
Dziecko (.child) ma teraz 48px, ponieważ dziedziczy 32px od .parent i skaluje go o 1.5×.
Kiedy używać em?
- Do wewnętrznych odstępów (
padding,margin) - Do ikon i przycisków, które powinny skalować się razem z tekstem
- W komponentach UI, gdzie elementy powinny być zależne od siebie
Jak działa rem?
Jednostka rem odnosi się zawsze do rozmiaru czcionki w <html> i nie jest zależna od rodzica.
html {
font-size: 16px;
}
.box {
font-size: 2rem; /* 2 × 16px = 32px */
}
2rem to zawsze 32px, niezależnie od tego, gdzie .box się znajduje.
Kiedy używać rem?
- Do głównego rozmiaru czcionki (
font-size) - Do spójnego skalowania interfejsu w całym projekcie
- Do globalnych wartości w layoucie (
width,padding,margin)