Menu

CSS Kutu Gölgesi (box-shadow): Spread, Inset ve Örnekler

box-shadow bir elementin kutusunun çevresine gölgeler çizer. Beş değeri (x, y, bulanıklık, spread, renk), inset gölgeleri, gerçekçi derinlik için birkaç gölgeyi üst üste koymayı, spread ile yapılan odak halkalarını ve gölgeleri bulanık gösteren hataları öğren.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

box-shadow nasıl çalışır

box-shadow, bir elementin kenarlık kutusunun çevresine bir gölge boyar. border-radius'u takip eder, düzende yer kaplamaz ve en az iki değere ihtiyaç duyar: yatayda ve dikeyde ne kadar kaydırılacağı.

Söz dizimi

box-shadow: [inset] <offset-x> <offset-y> [<blur>] [<spread>] [<color>];
DeğerAnlamıVarsayılan
insetGölgeyi içeri basılmış bir alan gibi kutunun içine çizerDışarıda
offset-xPozitif sağa, negatif sola kaydırırZorunlu
offset-yPozitif aşağı, negatif yukarı kaydırırZorunlu
blurKenarın ne kadar yumuşak olduğu; negatif olamaz0 (keskin kenar)
spreadGölgeyi büyütür (pozitif) ya da küçültür (negatif)0
colorHerhangi bir renk; yarı saydam siyah genellikle en iyi görünürMetin rengi

Uzunlukların sayısı anlamlarını belirler: iki tanesi uzaklıklardır, üçüncüsü bulanıklık, dördüncüsü spread ekler. Dene:

0 0 0 4px #f59e0b (bir halka), inset 0 0 12px #2563eb ve -8px -8px 0 #16a34a dene.

Spread: halkalar ve tek taraflı gölgeler

Spread, gölgenin boyutunu bulanıklaştırmadan önce değiştirir. Ondan iki kalıp çıkar:

  • Bir halka: uzaklık yok, bulanıklık yok, yalnızca spread. Kenarlıktan farklı olarak elementin boyutunu değiştirmez, bu yüzden iyi bir odak göstergesidir (:focus-visible { box-shadow: 0 0 0 3px #2563eb; }).
  • Boşluklu bir halka: renkli, daha büyük bir halkanın altına beyaz bir spread koy.
  • Yalnızca tek taraf: gölgeyi aşağı kaydır ve negatif bir spread ile küçült, böylece yalnızca alttan görünür.

Gerçekçi derinlik için katmanlı gölgeler

Gerçek gölgelerin nesneye yakın koyu, keskin bir kısmı ve daha uzakta yumuşak, soluk bir kısmı vardır. İki ya da üç katman bunu tek büyük bir bulanıklıktan çok daha iyi taklit eder:

Listedeki ilk gölge en üste boyanır. Gölge renklerini yarı saydam siyah ya da arka planın koyu bir tonu olarak tut, asla düz gri yapma; böylece altta ne varsa onu koyulaştırırlar.

Inset gölgeler

inset, gölgeyi yüzey içeri basılmış gibi padding kutusunun içine çizer. Metin input'larına, çukur alanlara ve basılı butonlara uyar:

input {
  box-shadow: inset 0 1px 3px rgb(0 0 0 / 20%);
}
button:active {
  box-shadow: inset 0 3px 6px rgb(0 0 0 / 30%);
}

Inset bir gölge arka planın üstüne ama içeriğin altına çizilir. Kutu yerine harf şekillerini takip eden gölgeler text-shadow'dur.

Sık yapılan hatalar

  • Saf siyah, tamamen opak gölgeler. Koyu bir çerçeve gibi görünürler. %10 ile %30 arası alfa kullan.
  • Derinlik için tek bir devasa bulanıklık. Küçük keskin bir gölgeyi büyük yumuşak bir gölgeyle katmanla.
  • Kenarda kesilen bir gölge. overflow: hidden olan bir ata onu kırpar; ataya padding ekle ya da overflow kuralını taşı.
  • Negatif bulanıklık. Geçersizdir ve bildirimin tamamı yok sayılır.
  • Birçok elementte box-shadow canlandırmak. Her karede yeniden boyar. Ağır sayfalarda bunun yerine büyük gölgeyi taşıyan bir sözde elementin opacity'sini canlandır.

Sıkça Sorulan Sorular

box-shadow söz dizimi nedir?

box-shadow: offset-x offset-y blur spread color;, örneğin box-shadow: 0 4px 12px 0 rgb(0 0 0 / 15%);. Yalnızca iki uzaklık zorunludur; gölgeyi kutunun içine çizmek için inset ekle.

box-shadow'da spread ne işe yarar?

Gölgeyi bulanıklaştırılmadan önce büyütür (pozitif) ya da küçültür (negatif). Uzaklığı ve bulanıklığı olmayan, spread değeri 3px olan bir gölge, elementin çevresinde düz 3px'lik bir halkadır.

Gölge yalnızca alta nasıl verilir?

Gölgeyi aşağı kaydır ve kenarlar kaybolsun diye negatif bir spread ile içeri çek: box-shadow: 0 8px 6px -6px rgb(0 0 0 / 40%);.

box-shadow düzeni etkiler mi?

Hayır. Gölge yer kaplamaz ve diğer elementleri hareket ettirmez; bu yüzden düzeni kaydırmadan bir odak halkası ya da hover'da yükselme efekti eklemenin iyi bir yoludur. Bir atanın overflow: hidden değeri onu kırpabilir.

Birden fazla kutu gölgesi olabilir mi?

Evet, onları virgülle ayır. İlk gölge en üste çizilir. Küçük keskin bir gölgeyi büyük yumuşak bir gölgeyle katmanlamak, tek bir büyük gölgeden daha doğal görünür.

Coddy programming languages illustration

Coddy ile kodlamayı öğren

BAŞLA