ToolHub
View All Posts

CSS Birim Dönüştürme Rehberi: px, rem, em, vw, vh Detaylı Anlatım

Doğru CSS birimini seçmek, stil sayfaları yazarken en etkili kararlardan biridir. Seçtiğiniz birim, öğelerin farklı ekran boyutlarında nasıl ölçekleneceğini, kullanıcı tercihlerine (tarayıcı yazı tipi boyutu ayarları gibi) nasıl yanıt vereceğini ve düzenin öngörülebilir davranışını belirler. Ancak birçok geliştirici, alışkanlıkla piksel kullanır ve göreli birimlerin sunduğu esneklik ve erişilebilirlik avantajlarını kaçırır. Bu rehber, tüm önemli CSS birimlerini kapsar, her birini ne zaman kullanacağınızı açıklar, aralarında nasıl dönüşüm yapacağınızı gösterir ve modern duyarlı tasarım için pratik en iyi uygulamaları sunar.

CSS Birim Sınıflandırmasını Anlama

CSS birimleri iki ana kategoriye ayrılır: mutlak birimler ve göreli birimler. Mutlak birimler sabit fiziksel boyutlara sahipken, göreli birimler hesaplanan değerlerini başka bir referans noktasından türetir. Bu ayrımı anlamak, bilinçli birim seçimleri yapmanın temelidir.

Mutlak Birimler

Mutlak birimler sabit boyutlu ölçülerdir. Web geliştirmede en yaygın kullanılan mutlak birim pikseldir (px). Diğer mutlak birimler arasında punto (pt), santimetre (cm), milimetre (mm) ve inç (in) bulunur. Bu birimler öncelikle yazdırma stil sayfaları için veya bağlama göre değişmeyen ölçülere ihtiyacınız olduğunda kullanılır. Ekran tabanlı CSS'te, düzenli olarak kullanacağınız tek mutlak birim px'tir.

Göreli Birimler

Göreli birimler, nihai değerlerini bir referans değerine göre hesaplar. em geçerli öğenin yazı tipi boyutuna göre, rem kök öğenin yazı tipi boyutuna göre, vw ve vh görünüm alanı boyutlarına göre, yüzde ise üst öğeye göredir. Göreli birimler, düzeninizin farklı bağlamlara otomatik olarak uyum sağlamasına olanak tanıdığı için duyarlı ve erişilebilir tasarımın temel taşıdır.

Piksel (px): Temel Birim

Piksel, en sezgisel CSS birimidir çünkü doğrudan ekran piksellerine eşlenir (cihaz piksel oranıyla ilgili bazı nüanslarla). px değeri bağlamdan bağımsız olarak her zaman aynıdır, bu da onu öngörülebilir ve anlaşılması kolay kılar. Ancak, bu öngörülebilirliğin bir bedeli vardır: piksel tabanlı boyutlar, kullanıcı tarayıcı varsayılan yazı tipi boyutunu değiştirdiğinde ölçeklenmez, bu da erişilebilirlik sorunları yaratır.

px Ne Zaman Kullanılır

px'ten Ne Zaman Kaçınılır

Yazı tipi boyutları, iç boşluklar, dış boşluklar ve kullanıcı tercihlerine uyum sağlaması gereken düzen boyutları için px kullanmaktan kaçının. Tarayıcı yazı tipi boyutunu 20px'e çıkaran bir kullanıcı, tüm metnin buna göre ölçeklenmesini bekler, ancak px tabanlı yazı tipi boyutları bu değişikliğe yanıt vermez.

rem: Kök Göreli Boyut

rem birimi (root em), kök öğenin (html) yazı tipi boyutuna göredir. Çoğu tarayıcıda, varsayılan kök yazı tipi boyutu 16px'tir, bu nedenle 1rem = 16px, 0.5rem = 8px, 2rem = 32px. rem'in temel avantajı, kullanıcı tarayıcı varsayılan yazı tipi boyutunu değiştirdiğinde ölçeklenmesidir, bu da onu erişilebilirlik için en iyi seçim yapar.

px'i rem'e Dönüştürme

Dönüşüm formülü basittir: piksel değerini kök yazı tipi boyutuna bölün.

rem = px / root-font-size

// With default root font size of 16px:
12px = 12 / 16 = 0.75rem
16px = 16 / 16 = 1rem
24px = 24 / 16 = 1.5rem
32px = 32 / 16 = 2rem
48px = 48 / 16 = 3rem

%62.5 Tekniği

Birçok geliştirici, 16'ya bölme işlemini zahmetli bulur. Popüler bir teknik, kök yazı tipi boyutunu %62.5 olarak ayarlamaktır, böylece 1rem 10px'e eşit olur. Bu, zihinsel hesaplamayı basitleştirir: 14px 1.4rem, 24px 2.4rem olur, vb.

html {
    font-size: 62.5%; /* 1rem = 10px */
}

body {
    font-size: 1.6rem; /* 16px */
}

h1 {
    font-size: 3.2rem; /* 32px */
    margin-bottom: 1.6rem; /* 16px */
}
Erişilebilirlik Notu: %62.5 tekniği, kullanıcının yazı tipi boyutu tercihlerine hala saygı duyduğu için çalışır. Kök öğede font-size: %62.5 ayarlamak, kullanıcının seçtiği varsayılanın %62.5'idir, bu nedenle kullanıcı tarayıcısını 20px olarak ayarlarsa, kök öğe 12.5px olur ve tüm rem değerleri orantılı olarak ölçeklenir. Kullanıcı tercihlerini geçersiz kılacağı için kök yazı tipi boyutunu asla sabit bir px değeri olarak ayarlamayın.

em: Bağlam Göreli Boyut

em birimi, geçerli öğenin yazı tipi boyutuna (veya font-size dışındaki özellikler için üst öğesine) göredir. Bu, 1em'in geçerli yazı tipi boyutuna eşit olduğu ve em değerlerinin öğeler iç içe yerleştirildiğinde bileşik hale geldiği anlamına gelir. Bu bileşik davranış hem güçlü hem de kafa karıştırıcı olabilir.

Bileşik Sorunu

/* Parent: font-size 16px */
.parent {
    font-size: 1em; /* 16px */
}

/* Child: 1.2em of parent's 16px = 19.2px */
.child {
    font-size: 1.2em;
}

/* Grandchild: 1.2em of child's 19.2px = 23.04px */
.grandchild {
    font-size: 1.2em;
}

Her iç içe öğe, yazı tipi boyutunu çarparak üstel büyümeye yol açar. Bu nedenle rem genellikle yazı tipi boyutları için daha iyidir. Ancak em, bileşen düzeyinde ölçekleme istediğiniz belirli kullanım durumlarında mükemmeldir.

em Ne Zaman Kullanılır

Görünüm Alanı Birimleri: vw, vh, vmin, vmax

Görünüm alanı birimleri, tarayıcı penceresi boyutlarına göredir. 1vw görünüm alanı genişliğinin %1'ine, 1vh görünüm alanı yüksekliğinin %1'ine eşittir. vmin, vw ve vh'den küçük olanıdır, vmax ise büyük olanıdır. Bu birimler, kullanılabilir ekran alanına yanıt veren düzenler oluşturmak için önemlidir.

Yaygın Görünüm Alanı Birimi Kullanım Durumları

Kullanım DurumuBirimÖrnek
Tam Ekran Herovhheight: 100vh
Akışkan Tipografivw + clampfont-size: clamp(1rem, 2.5vw, 2rem)
Yan Yana Düzenvwwidth: 50vw
Kare Öğevminwidth: 20vmin; height: 20vmin
Tam Görünüm Alanı Katmanıvw + vhwidth: 100vw; height: 100vh

Mobil vh Sorunu

Mobil tarayıcılarda, 100vh her zaman görünür görünüm alanı yüksekliğine eşit değildir. Tarayıcının adres çubuğu ve gezinme kontrolleri alan kaplar, ancak 100vh bu kontrollerin arkasındaki alanı içerir. Bu, tam yükseklikli alanların alt kısmındaki içeriğin kesilmesine neden olur. Modern CSS, dinamik araç çubuklarını hesaba katan dvh'yi (dinamik görünüm alanı yüksekliği) çözüm olarak sunar. Alternatif olarak, window.innerHeight tabanlı bir CSS özel özelliği ayarlamak için JavaScript kullanın.

/* Modern approach */
.hero {
    height: 100dvh; /* Dynamic viewport height */
}

/* Fallback for older browsers */
.hero {
    height: 100vh;
    height: 100dvh;
}

Yeni Görünüm Alanı Birimleri: svh, lvh, dvh

CSS, mobil görünüm alanı sorununu çözmek için üç yeni görünüm alanı yükseklik birimi tanıttı:

Genişlik (svw, lvw, dvw) ve minimum/maksimum birimler (svmin, lvmin, dvmin, vb.) için aynı küçük/büyük/dinamik varyantlar mevcuttur. Mobil tam ekran düzenler için dvh, içeriğin kaydırma olmadan görüntülenmesini garanti etmeniz gerektiğinde svh, mümkün olan maksimum alanı doldurmak istediğinizde lvh kullanın.

clamp() ile Akışkan Tipografi

CSS clamp() fonksiyonu, duyarlı tipografi için oyunun kurallarını değiştirir. Üç değer alır: minimum değer, tercih edilen değer ve maksimum değer. Tarayıcı tercih edilen değeri seçer, ancak minimum ve maksimum değerler arasında sınırlar.

/* Font size scales from 1rem to 2.5rem based on viewport */
h1 {
    font-size: clamp(1rem, 2.5vw + 0.5rem, 2.5rem);
}

/* Padding scales proportionally */
.container {
    padding: clamp(1rem, 3vw, 3rem);
}

Bu yaklaşım, metnin mobilde çok küçük veya masaüstünde çok büyük olma riski olmadan görünüm alanı tabanlı ölçeklemenin faydalarını sağlar. Yazı tipi boyutları için medya sorgusu kesme noktalarına olan ihtiyacı ortadan kaldırarak CSS karmaşıklığını önemli ölçüde azaltır.

Dönüşüm Referans Tablosu

Bu tabloyu yaygın dönüşümler için hızlı referans olarak kullanın. Tüm değerler 16px kök yazı tipi boyutu ve 1920x1080 görünüm alanı varsayar.

pxremem (16px'te)vw (1920px)% (16px'in)
8px0.5rem0.5em0.417vw50%
12px0.75rem0.75em0.625vw75%
16px1rem1em0.833vw100%
20px1.25rem1.25em1.042vw125%
24px1.5rem1.5em1.25vw150%
32px2rem2em1.667vw200%
48px3rem3em2.5vw300%
64px4rem4em3.333vw400%

CSS Birimleri En İyi Uygulamaları

CSS birimleri arasında hızlıca dönüştürme yapmanız mı gerekiyor? Ücretsiz çevrimiçi CSS birim dönüştürücümüzü deneyin. px'ten rem'e, em'den px'e, görünüm alanı birimleri ve daha fazlası arasında anında dönüştürün.

CSS Birim Dönüştürücü

Sıkça Sorulan Sorular

Yazı tipi boyutu için px mi yoksa rem mi kullanmalıyım?

Çoğu durumda yazı tipi boyutları için rem kullanın. rem birimi kök yazı tipi boyutuna göredir, bu nedenle kullanıcı tarayıcı varsayılan yazı tipi boyutunu değiştirdiğinde ölçeklenir. Bu, erişilebilirliği iyileştirir. Yalnızca kenarlıklar, gölgeler gibi ince ayrıntılar veya kullanıcı tercihleriyle ölçeklenmemesi gereken piksel hassasiyetine ihtiyacınız olduğunda px kullanın.

em ve rem arasındaki fark nedir?

em, üst öğenin yazı tipi boyutuna göreyken, rem kök yazı tipi boyutuna (genellikle 16px) göredir. em iç içe yerleştirildiğinde bileşik hale gelir ve beklenmeyen boyut değişikliklerine yol açabilir. rem her zaman aynı temele başvurur, bu da onu daha öngörülebilir kılar. Genel boyutlar için rem, iç içe öğelerin orantılı olarak ölçeklenmesini istediğiniz bileşen düzeyinde ölçekleme için em kullanın.

px'i rem'e nasıl dönüştürürüm?

Piksel değerini kök yazı tipi boyutuna (genellikle 16px) bölün. Örneğin, 24px / 16 = 1.5rem. Formül: rem = px / kök-yazı-tipi-boyutu. Kök yazı tipi boyutu 16px ise, 1rem = 16px, 0.5rem = 8px, 2rem = 32px. Hızlı dönüşümler için çevrimiçi CSS birim dönüştürücü kullanabilirsiniz.

Görünüm alanı birimlerini (vw, vh) ne zaman kullanmalıyım?

Tarayıcı penceresine göre boyutlandırmak istediğinizde görünüm alanı birimlerini kullanın. Yaygın kullanım durumları arasında tam ekran hero bölümleri (100vh), görünüm alanı genişliğiyle ölçeklenen tipografi (clamp ile vw) ve kullanılabilir alanı doldurması gereken düzenler bulunur. Mobilde çok küçük veya geniş ekranda çok büyük olabileceğinden, gövde metni için tek başına vw kullanmaktan kaçının.

Duyarlı tasarım için en iyi CSS birimi hangisidir?

Tek bir en iyi birim yoktur. Kombinasyon en iyi sonucu verir: yazı tipi boyutları ve boşluklar için rem, konteyner içindeki genişlikler için yüzde, tam ekran öğeler için görünüm alanı birimleri ve minimum ile maksimum boyutlar arasında ölçeklenen akışkan tipografi için CSS clamp(). Anahtar, her birimin neye referans verdiğini anlamak ve buna göre seçim yapmaktır.

ToolHub's collection of 300+ free online tools including CSS unit converters, formatters, and more — no sign-up required.