Ölçü Birimleri

CSS Podcast - 008: Boyutlandırma Birimleri

Web duyarlı bir ortamdır ancak bazen genel arayüz kalitesini artırmak için boyutlarını kontrol etmek isteyebilirsiniz. Buna örnek olarak, okunabilirliği artırmak için satır uzunluklarını sınırlamak verilebilir. Bunu web gibi esnek bir ortamda nasıl yaparsınız?

Bu durumda, oluşturulan yazı tipinde "0" karakterinin hesaplanmış boyutundaki genişliğe eşit olan bir ch birimi kullanabilirsiniz. Bu birim, metnin genişliğini metni boyutlandırmak için tasarlanmış bir birimle sınırlamanıza olanak tanır. Bu da metnin boyutundan bağımsız olarak tahmin edilebilir bir kontrol sağlar. ch birimi, bu örnekteki gibi belirli bağlamlar için yararlı olan bir avuç birimden biridir.

Numbers

Sayılar, opacity, line-height ve hatta rgb'deki renk kanalı değerlerini tanımlamak için kullanılır. Sayılar, birimsiz tam sayılar (1, 2, 3, 100) ve ondalık sayılardır (.1, .2, .3).

Sayılar, bağlamlarına göre anlam kazanır. Örneğin, line-height değerini tanımlarken bir sayıyı destekleyici bir birim olmadan tanımlarsanız bu sayı bir oranı temsil eder:

p {
  font-size: 24px;
  line-height: 1.5;
}

Bu örnekte 1.5, p öğesinin hesaplanmış piksel yazı tipi boyutunun %150'sine eşittir. Yani p öğesinin font-size değeri 24px ise satır yüksekliği 36px olarak hesaplanır.

Sayılar aşağıdaki yerlerde de kullanılabilir:

  • Filtreler için değerler ayarlanırken: filter: sepia(0.5), öğeye 50% sepya filtresi uygular.
  • Opaklığı ayarlarken: opacity: 0.5, 50% opaklığı uygular.
  • Renk kanallarında: rgb(50, 50, 50). Burada, renk değeri ayarlamak için 0-255 değerleri kabul edilir. Renk dersine bakın.
  • Bir öğeyi dönüştürmek için: transform: scale(1.2), öğeyi başlangıç boyutunun% 120'si kadar ölçeklendirir.

Yüzdeler

CSS'de yüzde kullanırken yüzdenin nasıl hesaplandığını bilmeniz gerekir. Örneğin, width, üst öğedeki kullanılabilir genişliğin yüzdesi olarak hesaplanır.

div {
  width: 300px;
  height: 100px;
}

div p {
  width: 50%;
}

Önceki örnekte, düzenin varsayılan box-sizing: content-box kullanıldığı varsayılarak div p'ün genişliği 150px'tür.

margin veya padding'ü yüzde olarak ayarlarsanız bu değerler, yönden bağımsız olarak üst öğenin genişliğinin bir bölümü olur.

div {
  width: 300px;
  height: 100px;
}

div p {
  margin-top: 50%; /* calculated: 150px */
  padding-left: 50%; /* calculated: 150px */
}

Önceki örnekte hem margin-top hem de padding-left, 150px olarak hesaplanır.

div {
  width: 300px;
  height: 100px;
}

div p {
  width: 50%; /* calculated: 150px */
  transform: translateX(10%); /* calculated: 15px */
}

transform değerini yüzde olarak ayarlarsanız bu değer, dönüşüm ayarlanmış öğeyi temel alır. Bu örnekte, p için translateX değeri 10%, width değeri ise 50%'tir. Öncelikle genişliğin ne olacağını hesaplayın: 150px, üst öğesinin genişliğinin% 50'si olduğundan. Ardından 150px'ün 10%'ünü alın. Bu değer 15px'dir.

Boyutlar ve uzunluklar

Bir sayıya birim eklerseniz bu sayı boyut olur. Örneğin, 1rem bir boyuttur. Bu bağlamda, bir sayıya eklenen birim, spesifikasyonlarda boyut jetonu olarak adlandırılır. Uzunluklar, mesafeyi ifade eden boyutlardır ve mutlak veya göreli olabilir.

Mutlak uzunluklar

Tüm mutlak uzunluklar aynı tabana göre çözülür. Bu sayede, CSS'nizde kullanıldıkları her yerde tahmin edilebilir olurlar. Örneğin, öğenizin boyutunu ayarlamak için cm'ü kullanıp ardından yazdırırsanız cetveleyle karşılaştırdığınızda doğruluk elde edersiniz. cm ve in gibi fiziksel birimlerin, piksel boyutlarındaki farklılıklar nedeniyle ekranlarda bu boyutlarda güvenilir bir şekilde gösterilmeyeceğini unutmayın. Fiziksel birimler en iyi şekilde, daha güvenilir olacakları baskı stili sayfalarında kullanılır.

div {
  width: 10cm;
  height: 5cm;
  background: black;
}

Bu sayfayı yazdırırsanız div 10x5 cm boyutunda siyah bir dikdörtgen olarak yazdırılır. CSS'nin yalnızca dijital içerik için değil, basılı içeriğe stil vermek için de kullanıldığını unutmayın. Mutlak uzunluklar, baskı için tasarım yaparken gerçekten kullanışlı olabilir.

Birim Ad Eşdeğer
cm Santimetre 1 cm = 96 piksel/2,54
mm Milimetre 1 mm = 1 cm'nin 1/10'u
S Çeyrek milimetre 1Q = 1 cm'nin 1/40'ı
inç İnç 1 inç = 2,54 cm = 96 piksel
pc Picas 1 pc = 1 inç'in 1/6'sı
pt Puan 1 pt = 1 inç'in 1/72'si
px Pikseller 1 piksel = 1 inç'in 96'da 1'i

Göreli uzunluklar

Göreceli uzunluk, yüzdeye benzer şekilde bir taban değere göre hesaplanır. Bu değerler ile yüzdeler arasındaki fark, boyutları varsayılan yazı tipi boyutu veya pencere boyutları gibi alakalı bir temel boyuta göre tanımlayabilmenizdir. Bu, CSS'nin temel olarak yazı tipinin boyut metriklerini kullanan ch gibi birimlere ve görüntü alanının (tarayıcı pencereniz) genişliğine dayalı vw gibi birimlere sahip olduğu anlamına gelir. Göreli uzunluklar, duyarlı yapısı nedeniyle özellikle web'de kullanışlıdır.

Yazı tipi boyutuna göreceli birimler

CSS, oluşturulan yazı tipinin öğelerinin boyutuna göre göreceli olan yararlı birimler sağlar. Örneğin, metnin boyutu (em birimi) veya yazı tipi karakterlerinin genişliği (ch birimi).

birim şuna göre:
em Yazı tipi boyutuna göre, yani 1.5em, üst öğesinin temel olarak hesaplanan yazı tipi boyutundan% 50 daha büyük olacaktır. (Geçmişte büyük "M" harfinin yüksekliği).
rem Kök öğenin yazı tipi boyutu (varsayılan değer 16px).
ex Öğenin mevcut hesaplanmış yazı tipi boyutunda x yüksekliğinin, "x" harfinin mi yoksa .5em değerinin mi kullanılacağını belirlemek için kullanılan sezgisel yöntem.
rex Kök öğenin ex değeri.
cap Öğenin mevcut hesaplanmış yazı tipi boyutunda büyük harflerin yüksekliği.
rcap Kök öğenin cap değeri.
ch Öğenin yazı tipindeki dar bir glif için ortalama karakter ilerleme değeri ("0" glifiyle gösterilir).
rch Kök öğenin ch değeri.
ic Öğenin yazı tipindeki tam genişlikli bir glif için "水" (CJK su ideogramı, U+6C34) glifiyle temsil edilen ortalama karakter ilerleme.
ric Kök öğenin ic değeri.
lh Öğenin satır yüksekliği.
rlh Kök öğenin lh satırı değeri.

Metin, CSS, tırmanıcı yüksekliği, inen yükseklik ve x yüksekliği etiketleriyle 10 kat daha iyidir. X-height, 1 ex'i, 0 ise 1 ch'yi temsil eder.

Görüntü alanına göre birimler

Görüntü alanının (tarayıcı penceresi) boyutlarını göreceli bir temel olarak kullanabilirsiniz. Bu birimler, mevcut görüntü alanı alanını bölümlere ayırır.

birim göre
vw Görüntü alanının genişliğinin% 1'i. Kullanıcılar bu birimi, başlıkta kullanılan yazı tipinin boyutunu sayfanın genişliğine göre ayarlayarak yazı tipinin boyutunu kullanıcının boyutuna göre ayarlamak gibi ilginç yazı tipi işlemleri yapmak için kullanır.
vh Görüntü alanının yüksekliğinin% 1'i. Örneğin, altbilgi araç çubuğunuz varsa öğeleri kullanıcı arayüzünde düzenlemek için bu yöntemi kullanabilirsiniz.
vi Kök öğenin satır içi eksenindeki görüntü alanının% 1'i. Eksen, yazma modlarını ifade eder. İngilizce gibi yatay yazım modlarında satır içi eksen yataydır. Bazı Japon yazı tipleri gibi dikey yazım modlarında satır içi eksen yukarıdan aşağıya doğru çalışır.
vb Kök öğenin blok eksenindeki görüntü alanının% 1'i. Blok ekseni için bu, dilin yönüdür. İngilizce gibi diller dikey blok eksenine sahiptir. Bunun nedeni, İngilizce okuyucuların sayfayı yukarıdan aşağıya doğru ayrıştırmasıdır. Dikey yazma modunda yatay bir blok ekseni bulunur.
vmin Görüntü alanının küçük boyutunun% 1'i.
vmax Görüntü alanının daha büyük boyutunun% 1'i.
div {
  width: 10vw;
}

p {
  max-width: 60ch;
}

Bu örnekte, 1vw görüntü alanı genişliğinin% 1'i olduğu için div, görüntü alanı genişliğinin% 10'u olur. p öğesinin max-width değeri 60ch. Bu, hesaplanmış yazı tipi ve boyutta 60 "0" karakter genişliğini aşamaz.

Görüntü alanına göre alternatif birimler

Görüntü alanına göre birim değerleri, görüntü alanı boyutu değişmediği sürece aynı kalır. Ancak mobil tarayıcılar, genellikle viewport'un hesaplanmış boyutunu değiştirmeden küçük ekranlarda mümkün olduğunca fazla içerik göstermek için kullanıcı arayüzü öğelerini gösterir veya gizler. Görünür alandaki bu değişiklikleri hesaba katmak için görüntü alanına göre birimlere alternatifler kullanabilirsiniz.

birim eş değer
lvw, lvh, lvi, lvb, lvmin, lvmax Tüm isteğe bağlı tarayıcı kullanıcı arayüzü öğeleri gizliyken görüntü alanının görünür alanına göre büyük görüntü alanı birimleri. Varyant olmayan görüntü alanına göre birimlere eşittir. Görüntü alanı boyutu değişmediği sürece değişmez.
svw, svh, svi, svb, svmin, svmax Tüm isteğe bağlı tarayıcı kullanıcı arayüzü öğelerinin görünür olduğu, görüntü alanının görünür alanına göre küçük görüntü alanı birimleri. Görüntü alanı boyutu değişmediği sürece değişmez.
dvw, dvh, dvi, dvb, dvmin, dvmax Görüntü alanının mevcut görünür alanına göre dinamik görüntü alanı birimleri. Tarayıcı kullanıcı arayüzü öğeleri gösterildiğinde veya gizlendiğinde değişiklikler

Kapsayıcıya göre birimler

Bir öğenin kapsayıcısının boyutlarını göreli temel olarak kullanabilirsiniz. Bu birimler, kullanılabilir kapsayıcı alanını bölümlere ayırır. Bu işlevler, yazı tipi boyutlarını mevcut alana göre ayarlamak için kapsayıcı sorgularında faydalıdır.

birim göre
cqw Kapsayıcının genişliğinin% 1'i.
cqh Kapsayıcının yüksekliğinin% 1'i.
cqi Kapsayıcının satır içi boyutunun% 1'i.
cqb Kapsayıcının blok boyutunun% 1'i.
cqmin Kapsayıcının küçük boyutunun% 1'i.
cqmax Kapsayıcının daha büyük boyutunun% 1'i.

Çeşitli birimler

Belirli değer türleriyle işlem yapmak için belirtilen başka birimler de vardır.

Açı birimleri

Renk modülünde, hsl'teki ton gibi derece değerlerini tanımlamak için faydalı olan açı birimlerine baktık. Dönüşüm işlevleri içindeki öğeleri döndürmek için de faydalıdırlar.

div {
  width: 150px;
  height: 150px;
  transform: rotate(60deg);
}

deg açı birimini kullanarak bir div'ı merkez ekseni üzerinde 90° döndürebilirsiniz.

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');
  }
}

Çözünürlük birimleri

Önceki örnekte min-resolution değerinin değeri 192dpi'tır. dpi birimi, inç başına nokta sayısı anlamına gelir. Bunun için yararlı bir bağlam, medya sorgusunda Retina ekranlar gibi çok yüksek çözünürlüklü ekranları algılayıp daha yüksek çözünürlüklü bir resim yayınlamaktır.

Öğrendiklerinizi test etme

Beden bilgisi hakkındaki bilginizi test edin

Aşağıdakilerden hangisi geçerli boyutlardır?

cm
Santimetre, geçerli bir mutlak boyuttur.
ui
Kullanıcı arayüzü, CSS'de bir boyut değildir.
in
İnç, geçerli bir mutlak boyuttur.
8.
CSS boyutu değil
pks
Piksel, geçerli bir mutlak boyuttur.
ch
Geçerli bir göreli boyut olan karakter birimleri.
ux
Kullanıcı deneyimi, CSS'de bir boyut değildir.
em
"M" harfi birimleri, geçerli bir göreli boyuttur.
ex
"x" harfi birimleri, geçerli bir göreli boyuttur.

Mutlak ve göreli birimler arasındaki fark nedir?

Mutlak değerler değiştirilemez ancak göreceli birimler değiştirilebilir.
Mutlak değerler değişebilir ancak hesaplama için referans alınan taban değişemez.
Mutlak uzunluk, tek bir paylaşılan taban değere göre hesaplanır. Göreceli birimin, değişebilen bir taban değerle karşılaştırıldığı bu hesaplama yönteminde, mutlak uzunluk, göreceli birimin değerinden daha büyüktür.
Bağlamsal farkındalıkları nedeniyle göreceli birimler daha uyarlanabilir ve akıcıdır ancak mutlak birimler, belirli tasarımlar için temel oluşturabilecek bir güce ve öngörülebilirliğe sahiptir.

Görüntü alanı birimleri mutlaktır.

Doğru
Bu değerler mutlak gibi görünse de bir görüntü alanına görelidir. Görüntü alanı bir iframe veya web görünümü olabilir ve her zaman cihaz ekran boyutunu temsil etmez.
Yanlış
Bu koordinatlar, oluşturuldukları doküman penceresine göredir. Bu pencere, cihaz ekranıyla aynı olabilir veya olmayabilir.

Kaynaklar