CSS text-wrap: bakiye

Dengeli metin blokları için satır aralarını manuel olarak yazmak gibi klasik bir yazım tekniği CSS'ye eklendi.

Adam Argyle
Adam Argyle

text-wrap için balance değeri CSS Metin Düzeyi 4'ün bir parçasıdır. Bu tek satır CSS'nin metin düzenlerinizi nasıl büyük ölçüde iyileştirebileceğini öğrenmek için bu yayındaki örneklere göz atın.

Tarayıcı desteği

  • Chrome: 114.
  • Kenar: 114.
  • Firefox: 121.
  • Safari: 17.5.

Kaynak

Demoyu deneyin

text-wrap: balance olmadan; tasarımcılar, içerik düzenleyiciler ve yayıncıların çizgilerin dengelenme şeklini değiştirmek için az sayıda aracı vardır. Metin düzenlerini satır ve kelimelerin nerede bölüneceği konusunda daha akıllıca kararlar almaya yönlendirmek için en iyi seçenekler <wbr> veya &shy; kullanmaktır.

Geliştirici olarak, bir başlığın veya paragrafın nihai boyutunu, yazı tipi boyutunu ve hatta dilini bilmiyorsunuzdur. Metin kaydırma işleminin etkili ve estetik bir şekilde yapılması için gereken tüm değişkenler tarayıcıdadır. Bu nedenle, aşağıdaki resimde gösterildiği gibi başlık kaydırma işlemini görüyoruz:

Başlık, DevTools ile vurgulanmış, satır içi alanının tam genişliğini kaplıyor ve ikinci satırda iki sarkan kelime var.
Demoyu deneyin
.unbalanced {
  max-inline-size: 50ch;
}

CSS Metin 4'teki text-wrap: balance ile tarayıcıdan metin için en dengeli satır sarma çözümünü bulmasını isteyebilirsiniz. Tarayıcı; yazı tipi boyutu, dil ve ayrılan alan gibi tüm faktörleri bilir. Tarayıcıda dengeli metin kaydırma özelliğinin sonuçları şu şekilde görünür:

Başlık, önceki DevTools&#39;ta olduğu gibi vurgulanır ancak bu sefer tüm genişliği kaplamaz. Metin, sondan önce yeni bir satırla başladığı için dengeli bir metin bloğudur.
Demoyu deneyin
.balanced {
  max-inline-size: 50ch;
  text-wrap: balance;
}

Bunları yan yana, sabit ve hata ayıklama bilgileri yer almayan bir şekilde görmek faydalı olacaktır.

Önceki iki örnek birlikte gösterilmektedir. Bunlardan biri dengesiz, diğeri dengeli olarak işaretlenmiştir.

Dengeli metin bloğu, gözünüze çok daha hoş gelecektir. Dikkatleri daha iyi çeker ve genel olarak daha kolay okunur.

Dengeyi bulma

Okuyucuların ilk gördüğü şey başlıklar olduğundan, başlıklar görsel açıdan ilgi çekici ve kolay okunmalıdır. Bu sayede kullanıcıların dikkatini çekebilir, kalite ve güven duygusu verebilirsiniz. İyi bir yazı tipi, okuyuculara güven vererek okumaya devam etmelerini sağlar.

Metni dengeleyen tasarımcı, matematiği değil gözü memnun etmek istediği için bu görev geleneksel olarak elle veya optik olarak yapılır. Bu konu genellikle metrik ve optik hizalama olarak adlandırılır. New York Times gibi büyük yayınlar için başlık dengeleme, kullanıcı deneyimi açısından çok önemli bir ayrıntıdır.

Demo deneyin

Tipografide metni dengeleme, yazıcıların harfleri elle yerleştirdiği baskıcılığın ilk günlerine dayanır. Araçlar ve teknikler geliştikçe sonuçlar da gelişti. Günümüzde tasarımcılar, tasarımlarındaki metinleri dengelemek için renk, kalınlık, boyut ve daha fazlasını kullanabiliyor.

Ancak web'de, doküman boyutları ve renkleri kullanıcılara göre değiştiği için daha az kontrol sahibi olursunuz. text-wrap: balance, basılı sektördeki tasarımcıların çalışmalarını ve geleneklerini temel alarak metin dengeleme sanatını web'e otomatik bir şekilde getirir.

Başlıkları dengeleme

Bu, text-wrap: balance için birincil kullanım alanı olacak ve olmalıdır. Gözü uygun boyutlarda çizin ve simetrik olmasını sağlayın. Ayrıca, okunaklı olması için göze dikkat çekici bir görünüm kazandırın. Aşağıdaki CSS ile tüm başlıkları dengeli metin kaydırmasına ayarlayın:

h1,h2,h3,h4,h5,h6 {
  text-wrap: balance;
}

Metnin kaydırılması ve dolayısıyla bir yerden maksimum satır uzunluğunun uygulanması gerektiğinden, bu stilin uygulanması size beklediğiniz sonuçları vermeyebilir. Bu yayındaki örneklerde bir max-inline-size seti göreceksiniz. Bu stil max-width'a benzer ancak herhangi bir dil için bir kez ayarlanabilir.

Sınırlamalar

Metni dengeleme görevi ücretsiz değildir. Tarayıcı, en iyi dengeli sarma çözümünü bulmak için iterasyonları döngü içinde çalıştırmalıdır. Bu performans maliyeti, yalnızca altı satır ve altı satırdan kısa metinler için geçerli olan bir kuralla azaltılır.

Demoyu deneyin

Performansla ilgili konular

Metin kaydırma dengesini tasarımınızın tamamına uygulamak iyi bir fikir değildir. Altı satır sınırı nedeniyle boşa giden bir istektir ve sayfa oluşturma hızını etkileyebilir.

Yapılmaması gerekenler:
* {
  text-wrap: balance;
}
ALTERNATİF OLARAK DENEYEBİLECEĞİNİZ UYGULAMALAR
h1, h2, h3, h4, h5, h6, blockquote {
  text-wrap: balance;
}

Bu özelliğin en büyük avantajı, şu anda JavaScript ile yapıyor olabileceğiniz gibi yazı tipi yüklemeyle metin kaydırma dengesini beklemenize ve zamanlamanız gerekmemesidir. Tarayıcı bunu sizin için yapar.

white-space mülkü ile etkileşimler

Metni dengele özelliği, white-space özelliğiyle rekabet eder. Bunun nedeni, biri sarmalama yapılmamasını, diğeri ise dengeli sarmalama yapılmasını istemesidir. Boşluk özelliğini kaldırarak bu sorunun üstesinden gelebilirsiniz. Ardından dengeli sarma işlemi tekrar uygulanabilir.

.balanced {
  white-space: unset;
  text-wrap: balance;
}

Dengeleme, öğenin satır içi boyutunu değiştirmez.

Dengeli metin kaydırma için JavaScript çözümlerinin bazılarında, içeren öğenin max-width değerini değiştirdikleri için avantaj vardır. Bu, dengelenmiş bloğa "sıkıca sarılmış" olma avantajına sahiptir. text-wrap: balance bu etkiye sahip değildir ve aşağıdaki örnekte görülebilir:

Başlık, önceki DevTools&#39;ta olduğu gibi vurgulanır ancak bu sefer tüm genişliği kaplamaz. Metin, sondan önce yeni bir satırla başladığı için dengeli bir metin bloğudur.

DevTools'da gösterilen genişliğin sonunda bir sürü boşluk olduğunu görüyor musunuz? Bunun nedeni, boyutu değiştiren bir stil değil, yalnızca sarmalayan bir stil olmasıdır. Bu nedenle, en azından benim görüşüme göre text-wrap: balance'ün çok iyi olmadığı birkaç senaryo vardır. Örneğin, bir kartın içindeki başlıklar (veya kenarlıkları veya gölgeleri olan herhangi bir kapsayıcı).

Dengeli metin kaydırma, ironik bir şekilde, kapsayıcı öğede dengesizlik oluşturur.

Tarayıcının kullandığı tekniğin kısa açıklaması

Tarayıcı, ek satırlara neden olmayan en küçük genişlik için etkili bir ikili arama gerçekleştirir ve bir CSS pikseli (görüntü pikseli değil) üzerinde durur. Tarayıcı, ikili aramadaki adımları daha da en aza indirmek için ortalama satır genişliğinin% 80'i ile başlar.