Taşma

İçerikler üst öğe kapsamının dışına çıktığında bunu yönetmek için pek çok seçeneğiniz bulunur. Kaydırarak fazladan alan ekleyebilir, taşan kenarları kırpabilir, kesimi üç nokta ile belirtebilir ve daha pek çok işlem yapabilirsiniz. Taşma, özellikle telefon uygulamaları ve birden fazla ekran boyutu için geliştirme yaparken dikkate alınması gereken önemli bir konudur.

CSS'de iki farklı kırpma seçeneği vardır; text-overflow, tek tek metin satırları için yardımcı olur ve overflow özellikleri, kutu modelindeki taşmayı kontrol etmeye yardımcı olur.

text-overflow ile tek satır taşması

Metin düğümü içeren tüm öğelerde (ör. paragraf, <p>) text-overflow özelliğini kullanın. Metnin, öğenin mevcut alanına sığmadığında nasıl görüneceğini belirtir. Bir sayfadaki tüm görüntülenebilir HTML metni metin düğümlerinde bulunur. text-overflow'ü kullanmak için tek bir sarmalanmış metin satırına ihtiyacınız vardır. Bu nedenle, overflowhidden olarak ayarlamanız ve sarmalmayı engelleyen bir white-space değerine sahip olmanız gerekir.

p {
   
text-overflow: ellipsis;
   
overflow: hidden;
   
white-space: nowrap;
}

Taşma mülklerini kullanma

Taşma özellikleri, alt öğelerinin mevcut alandan daha fazla alana ihtiyaç duyduğunda ne olacağını kontrol etmek için bir öğede ayarlanır. Bu durum, kullanıcının belirli bir boyuta kırpılmış büyük bir görüntünün etrafında gezindiği Google Haritalar gibi etkileşimli bir haritada olduğu gibi kasıtlı olabilir. Bu durum, kullanıcının metin balonuna sığmayan uzun bir mesaj yazdığı sohbet uygulamalarında olduğu gibi istenmeden de gerçekleşebilir.

Taşmayı iki bölüm halinde düşünebilirsiniz. Üst öğenin, değişmeyen, sıkıca sınırlanmış bir alanı vardır. Bunu bir pencere olarak düşünebilirsiniz. Alt öğeler, üst öğeden daha fazla alan isteyen içeriklerdir. Bunu pencereden baktığınız şey olarak düşünebilirsiniz. Taşmayı yönetmek, pencerenin bu içeriği nasıl çerçeveleyeceğini belirlemenize yardımcı olur.

Dikey ve yatay eksende kaydırma

overflow-y mülkü, cihaz görüntü alanının dikey ekseni boyunca fiziksel taşmayı kontrol eder ve bu nedenle yukarı ve aşağı kaydırmayı sağlar.

overflow-x mülkü, cihaz görüntü alanının yatay ekseni boyunca taşmayı kontrol eder. Bu nedenle, sola ve sağa kaydırma işlemini kontrol eder.

Kaydırma yönü için mantıksal özellikler

Tarayıcı desteği

  • Chrome: Desteklenmez.
  • Edge: Desteklenmez.
  • Firefox: 69.
  • Safari: desteklenmez.

Kaynak

overflow-inline ve overflow-block özellikleri, taşmayı doküman yönüne ve yazma moduna göre ayarlar.

overflow sloganı

overflow kısaltması overflow-x ve overflow-y stillerini tek satırda ayarlar:

overflow: hidden scroll;

İki anahtar kelime belirtilirse ilki overflow-x ve ikincisi overflow-y için geçerli olur. Aksi takdirde, hem overflow-x hem de overflow-y aynı değeri kullanır.

Değerler

overflow mülkleri için kullanılabilen değerleri ve anahtar kelimeleri daha yakından inceleyelim.

overflow: visible (varsayılan)
Mülkü ayarlamadan web'deki varsayılan değer overflow: visible olur. Bu sayede, içeriklerin hiçbir zaman yanlışlıkla gizlenmemesi sağlanır ve "içerikleri hiçbir zaman gizleme" veya "kesin düzenlerin güvenli düzenleri" gibi temel ilkeler uygulanır.
overflow: hidden
overflow: hidden ile içerik belirtilen yönde kırpılır ve gösterilmesi için kaydırma çubukları sağlanmaz.
overflow: scroll
overflow: scroll, kullanıcıların içerikte kaydırma yapmasına olanak tanımak için kaydırma çubuklarını etkinleştirir. İçerik şu anda taşmasa bile kaydırma çubukları bulunur. Bu, bir kapsayıcı gelecekte örneğin yeniden boyutlandırmaya bağlı olarak kaydırılabilir hale gelebilecekse gelecekteki düzen kaydırmamasını azaltmanın ve kullanıcıyı kaydırılabilir alanlara görsel olarak hazırlamanın mükemmel bir yoludur.
overflow: clip
overflow: hidden gibi, overflow: clip içeren içerik de öğenin dolgu kutusuna kırpılır. clip ile hidden arasındaki fark, clip anahtar kelimesinin programatik kaydırma dahil olmak üzere tüm kaydırmaları da yasaklamasıdır.
overflow: auto
Son olarak, en yaygın olarak kullanılan değer overflow: auto. Bu yöntem, kullanıcı tercihlerine saygı gösterir ve gerekirse kaydırma çubuklarını gösterir ancak varsayılan olarak gizler. Kaydırma sorumluluğunu kullanıcıya ve tarayıcıya bırakır.
ziyaret edin.

Kaydırma ve taşma

Bu overflow davranışlarının çoğu bir kaydırma çubuğu sunar ancak taşma kapsayıcınızda kaydırmayı kontrol etmenize yardımcı olabilecek birkaç özel kaydırma davranışı ve özelliği vardır.

Kaydırma ve erişilebilirlik

Klavye kullanıcısının sekmeyle kutuya gidip kaydırmak için ok tuşlarını kullanabilmesi için kaydırılabilir alanın odağı kabul edebileceğinden emin olmak önemlidir.

Kaydırma kutusuna odaklanılmasına izin vermek için tabindex="0", aria-labelledby özelliğine sahip bir ad ve uygun bir role özelliği ekleyin. Örneğin:

<div tabindex="0" role="region" aria-labelledby="id-of-descriptive-text">
    content
</div>

Ardından, kutunun odakta olduğunu belirtmek için CSS kullanılabilir. outline özelliği, kutunun artık kaydırılabilir olduğuna dair görsel bir ipucu verir.

Adrian Roselli, Erişilebilirliği Zorunlu Kılmak için CSS'yi Kullanma bölümünde CSS'nin erişilebilirlik regresyonlarını önlemeye nasıl yardımcı olabileceğini gösteriyor. Örneğin, yalnızca doğru özellikler kullanılıyorsa kaydırma özelliğini etkinleştirmek ve odak göstergesini eklemek için. Aşağıdaki kurallar, kutuyu yalnızca tabindex, aria-labelledby ve role özelliğine sahipse kaydırılabilir hale getirir.

[role][aria-labelledby][tabindex] {
 
overflow: auto;
}

[role][aria-labelledby][tabindex]:focus {
 
outline: .1em solid blue;
}

Kutu modelinde kaydırma çubuğu konumlandırma

Kaydırma çubukları, dolgu kutusunda yer kaplar ve overlaid değilse yer için rekabet edebilir. kutu modeli modülü, bu olası düzen kayması kaynağı hakkında daha fazla bilgi sağlar.

root-scroller ile implicit-scroller arasındaki fark

Özellikle mobil ve karma uygulamalar için geliştirme yaparken bazı kaydırma çubuklarının yenilemek için çekme davranışına ve diğer özel davranışlara sahip olduğunu fark edebilirsiniz. Bu kaydırma davranışı, kök kaydırma aracında gerçekleşir. Bir sayfada yalnızca bir root kaydırma çubuğu vardır. Varsayılan olarak documentElement, sayfanın kök kaydırıcısıdır. Ancak, kök kaydırıcı olan öğe değiştirildiğinde, documentElement dışındaki kaydırıcılara özel davranışlar uygulanabilir. Bu yeni kaydırıcıya örtülü kök kaydırıcı diyoruz.

Kök kaydırma çubuğu oluşturmak için bir kapsayıcıyı sabit olarak konumlandırarak kaydırıcı tanıtımı adı verilen bir yöntemi kullanabilirsiniz. Bunun için kapsayıcının tüm görüntü alanını kapsamasını ve kaydırma çubuğuyla en üstte z-endeksi olmasını sağlamanız gerekir. Kök kaydırma çubuğu ile iç içe yerleştirilmiş, gizli kaydırma çubuğu arasındaki farkı buradan görebilirsiniz.

Videoda, gelişmiş kaydırma davranışı olmayan bir örtük kaydırma çubuğunun kaydırılmasına kıyasla
, sıçrama davranışı ve yeni stil özellikleri olan bir kök kaydırma çubuğunun kaydırması gösterilmektedir.

scroll-behavior

Tarayıcı desteği

  • Chrome: 61.
  • Edge: 79.
  • Firefox: 36.
  • Safari: 15.4

Kaynak

scroll-behavior, tarayıcı tarafından kontrol edilen öğeler için kaydırma özelliğini etkinleştirmenize olanak tanır. Bu, .scrollTo() veya bağlantılar gibi sayfa içi gezinmenin nasıl işleneceğini belirlemenize olanak tanır.

Bu, özellikle kullanıcı tercihine göre kaydırma davranışını belirtmek için prefers-reduced-motion ile kullanıldığında özellikle yararlıdır.

@media (prefers-reduced-motion: no-preference) {
 
.scroll-view {
   
scroll-behavior: auto;
 
}
}

overscroll-behavior

Tarayıcı Desteği

  • Chrome: 63.
  • Kenar: 18.
  • Firefox: 59.
  • Safari: 16.

Kaynak

Bir modal yer paylaşımının sonuna ulaştıysanız, kaydırmaya devam ettiyseniz ve yer paylaşımının arkasındaki sayfanın hareket etmesine neden olduysanız bu, kaydırma zincirleme veya üst kaydırma kapsayıcısına bulaşma işlemidir. overscroll-behavior özelliği, taşma kaydırma özelliğinin üst kapsayıcıya sızmasını (kaydırma zincirleme olarak adlandırılır) önlemenize olanak tanır.

Öğrendiklerinizi sınayın

Taşma hakkındaki bilginizi test edin

Metin taşması ve öğe taşması aynı mı?

yanlış
true

overflow özelliği 2 anahtar kelime kabul eder. İlk anahtar kelime hangi eksen için olur?

dikey
yatay

Kaydırma çubukları gösterilirken ve satır içiyken kutu modelinde hangi alanı tüketir?

kenar boşluğu kutusu
kenarlık kutusu
içerik kutusu
dolgu kutusu

İç içe yerleştirilmiş bir örtük kaydırma çubuğunda kaydırma sırasındaki ek momentumu yakalamak için hangi özelliği kullanırsınız?

overscroll-behavior
scroll-behavior
scroll-hint
scroll-padding
overscroll-effect

Kaynaklar

Smashing Magazine'den CSS'de Taşma ve Veri Kaybı