The CSS Podcast - 008: Sizing Units
Internet jest medium responsywnym, ale czasami warto kontrolować jego wymiary, aby poprawić ogólną jakość interfejsu. Dobrym przykładem jest ograniczanie długości wierszy, aby ułatwić czytelność. Jak to zrobić w takim elastycznym medium, jak internet?
W tym przypadku
możesz użyć jednostki ch
, która ma szerokość „0”
w wyrenderowanej czcionce w jej obliczonym rozmiarze.
Umożliwia ona ograniczenie szerokości tekstu za pomocą jednostki przeznaczonej do
które z kolei
który daje przewidywalną kontrolę niezależnie od rozmiaru tekstu.
Jednostka ch
jest jedną z kilku jednostek przydatnych w określonych kontekstach, takich jak ten przykład.
Numbers
Liczby służą do definiowania opacity
, line-height
, a nawet wartości kanałów kolorów w rgb
.
Liczby to liczby całkowite (1, 2, 3, 100) oraz ułamki dziesiętne (0,1, 0,2, 0,3).
Liczby mają znaczenie w zależności od kontekstu.
Na przykład podczas definiowania line-height
liczba jest reprezentowana przez współczynnik, jeśli zdefiniujesz ją bez jednostki pomocniczej:
p {
font-size: 24px;
line-height: 1.5;
}
W tym przykładzie 1.5
jest równe 150% obliczonego rozmiaru czcionki w pikselach elementu p
.
Oznacza to, że jeśli p
ma wartość font-size
o wartości 24px
,
wysokość wiersza zostanie obliczona jako 36px
.
Numerów można też używać w tych miejscach:
- Podczas ustawiania wartości filtrów:
filter: sepia(0.5)
stosuje do elementu filtr sepii50%
. - Podczas ustawiania przezroczystości:
opacity: 0.5
zostanie zastosowana przezroczystość50%
. - W kanałach kolorów:
rgb(50, 50, 50)
, gdzie 0-255 pozwala określić wartość koloru. Zobacz lekcję o kolorach - Aby przekształcić element:
transform: scale(1.2)
, aby powiększyć element o 120% jego początkowego rozmiaru.
Wartość (%)
Korzystając z procentów w CSS, musisz wiedzieć, jak są one obliczane.
Na przykład width
jest obliczana jako procent dostępnej szerokości elementu nadrzędnego.
div {
width: 300px;
height: 100px;
}
div p {
width: 50%;
}
W tym przykładzie szerokość elementu div p
wynosi 150px
, zakładając, że układ używa domyślnego elementu box-sizing: content-box
.
Jeśli ustawisz margin
lub padding
jako wartość procentową, będą one stanowić część szerokości elementu nadrzędnego, niezależnie od kierunku.
div {
width: 300px;
height: 100px;
}
div p {
margin-top: 50%; /* calculated: 150px */
padding-left: 50%; /* calculated: 150px */
}
W powyższym fragmencie kodu zarówno margin-top
, jak i padding-left
będą się przeliczać na 150px
.
div {
width: 300px;
height: 100px;
}
div p {
width: 50%; /* calculated: 150px */
transform: translateX(10%); /* calculated: 15px */
}
Jeśli ustawisz wartość transform
w procentach,
opiera się na elemencie z zestawem przekształcenia.
W tym przykładzie p
ma wartość translateX
= 10%
, a width
= 50%
.
Najpierw oblicz szerokość: 150px
, ponieważ jest to 50% szerokości elementu nadrzędnego.
Następnie weź 10%
z 150px
, czyli 15px
.
Wymiary i długości
Jeśli dołączysz jednostkę do liczby, stanie się ona wymiarem.
Na przykład 1rem
jest wymiarem.
W tym kontekście jednostka powiązana z liczbą jest w specyfikacjach nazywana tokenem wymiaru.
Długości to wymiary odnoszące się do odległości i mogą być bezwzględne lub względne.
Bezwzględne długości
Wszystkie bezwzględne długości są przekształcane na podstawie tej samej bazy,
dzięki czemu są przewidywalne w każdym miejscu, w którym są używane w CSS.
Jeśli na przykład użyjesz wartości cm
do określenia rozmiaru elementu, a potem wydrukujesz dokument, powinien on być dokładny, jeśli porównasz go z miernikiem.
div {
width: 10cm;
height: 5cm;
background: black;
}
Jeśli ta strona zostanie wydrukowana, div
będzie wydrukowany jako czarny prostokąt o wymiarach 10 x 5 cm.
Pamiętaj, że kod CSS jest używany nie tylko do tworzenia treści cyfrowych, ale też do nadawania stylu treściom przeznaczonym do druku.
Bezwzględna długość może być bardzo przydatna przy projektowaniu materiałów do druku.
Długości względne
Długość względna jest obliczana na podstawie wartości podstawowej, podobnie jak wartość procentowa.
Różnica między tymi wartościami a wartościami procentowymi polega na tym, że możesz określić rozmiar elementów kontekstowo.
Oznacza to, że CSS ma jednostki takie jak ch
, na których podstawą jest rozmiar tekstu,
i vw
, która jest oparta na szerokości widocznego obszaru (okna przeglądarki).
Długości względne są szczególnie przydatne w internecie ze względu na to, że są elastyczne.
Jednostki względne do rozmiaru czcionki
CSS udostępnia przydatne jednostki względne do rozmiaru elementów renderowanej typografii, takie jak rozmiar samego tekstu (jednostki em
) lub szerokość znaków czcionki (jednostki ch
).
Jednostka | w odniesieniu do: |
---|---|
em | Względem rozmiaru czcionki, tzn. 1.5em będzie o 50% większy od obliczonego rozmiaru czcionki elementu nadrzędnego. (Wcześniej była to wysokość wielkiej litery „M”). |
np. | Heurystyka służąca do określenia, czy użyć wysokości x, litera „x” lub „.5em” w obliczonym obecnie rozmiarze czcionki tego elementu. |
cap | Wysokość wielkich liter w bieżącym rozmiarze czcionki elementu. |
ch | Średni wymiar znaku wąskiego glifu w czcionce elementu (reprezentowany przez glif „0”). |
ic | Średnia przestrzeń znakowa znaku o pełnej szerokości w fontzie elementu, reprezentowanego przez znak „水” (ideogram oznaczający wodę w językach chińskich, U+6C34). |
rem | Rozmiar czcionki elementu głównego (domyślnie 16 pikseli). |
lh | Wysokość linii elementu. |
rlh | Wysokość wiersza elementu podstawowego. |
Jednostki względne do widocznego obszaru
Wymiarów widocznego obszaru (okna przeglądarki) możesz użyć jako podstawy względnej. Te jednostki zajmują część dostępnego obszaru widocznego obszaru.
Jednostka | w stosunku do |
---|---|
vw | 1% szerokości widocznego obszaru. Za pomocą tej jednostki sztucznie wykorzystują czcionki, takie jak zmiana rozmiaru czcionki nagłówka w zależności od szerokości strony, rozmiar czcionki się zmieni. |
VH | 1% wysokości widocznego obszaru. Pozwala rozmieszczać elementy w interfejsie, jeśli używasz np. paska narzędzi w stopce. |
vi | 1% rozmiaru widocznego obszaru na osi poziomej elementu ukorzeniającego. Oś odnosi się do trybów pisania. W trybach pisania poziomego, takich jak angielski, oś wstawiona jest pozioma. W trybach pisania pionowego, takich jak niektóre czcionki japońskie, oś wstawiona przebiega od góry do dołu. |
vb | 1% rozmiaru widocznego obszaru na osi bloku elementu katalogu. W przypadku osi bloku jest to kierunkowość języka. Języki LTR takie jak angielski mają pionową oś bloku, ponieważ czytelnicy anglojęzyczni przeglądają stronę od góry do dołu. Tryb pisania pionowego ma oś bloku poziomego. |
vmin | 1% mniejszego wymiaru widocznego obszaru. |
vmax | 1% większego rozmiaru widocznego obszaru. |
div {
width: 10vw;
}
p {
max-width: 60ch;
}
W tym przykładzie div
to 10% szerokości widocznego obszaru, ponieważ 1vw
to 1% szerokości widocznego obszaru.
Element p
ma atrybut max-width
o wartości 60ch
, co oznacza, że nie może przekraczać szerokości 60 znaków „0” w obliczonym rozmiarze i czcionce.
Inne jednostki
Istnieją też inne jednostki, które zostały określone w celu obsługi określonych typów wartości.
Jednostki kąta
W module kolorów przyjrzeliśmy się jednostkom kąta, które są przydatne do definiowania wartości kąta, na przykład odcienia w hsl
.
Są one też przydatne do obracania elementów w ramach funkcji transformacji.
div {
width: 150px;
height: 150px;
transform: rotate(60deg);
}
Za pomocą kąta deg
możesz obrócić div
o 90° wokół osi środkowej.
div {
background-image: url('a-low-resolution-image.jpg');
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
div {
background-image: url('a-high-resolution-image.jpg');
}
}
Jednostki rozdzielczości
W poprzednim przykładzie wartość min-resolution
wynosi 192dpi
.
Jednostka dpi
oznacza punkty na cal.
W tym celu można wykrywać ekrany o bardzo wysokiej rozdzielczości, takie jak wyświetlacze Retina, w zapytaniu o multimedia i podawać obraz o wyższej rozdzielczości.
Sprawdź swoją wiedzę
Sprawdź swoją wiedzę na temat rozmiarów
Które z tych wymiarów są prawidłowe?
Czym różnią się jednostki bezwzględne od względnych?
Jednostki widocznego obszaru są bezwzględne.