overflow: hidden, içeriği neredeyse her zaman dolgu kutusunda kesin olarak kırpan "keskin bir araç" olsa da overflow: clip ile overflow-clip-margin, blok kapsayıcılar üzerinde ayrıntılı düzen kontrolü için "neşter" sağlar.
overflow: clip ve overflow-clip-margin ile kırpmanın tam olarak nerede gerçekleştiğini belirtin. Sınırı, iç kutu modeli kenarlarıyla tam olarak hizalayabilir veya kırpma sınırını, belirtilen bir ofset (güvenlik payı) kadar öğenin kutusunun ötesine uzatabilirsiniz. Bu modern yaklaşım, yüksek performans sağlar ve görsel efektlerin (ör. belirgin alt öğe gölgeleri) kırpılmadan oluşturulması için özel dolgu ve negatif kenar boşlukları içeren ek sarmalayıcı kapsayıcılar ekleme şeklindeki eski gereksinimi ortadan kaldırır.
Değiştirilen öğeler (<img>, <video>, <canvas> vb.) varsayılan olarak overflow: clip ve overflow-clip-margin: content-box değerlerini alır. Bu sayede, object-fit veya border-radius kullanan resimleri düzgün bir şekilde içerebilirsiniz.
Nasıl uygulanır?
overflow: clipuygulayın: Hedef öğedeoverflow: clipözelliğinin etkinleştirildiğinden emin olun.overflow-clip-marginözelliğinin geçerli olması için blok düzeni kapsayıcılarındaoverflow: clipayarının yapılması zorunludur.overflow,hidden,autoveyascrollolarak ayarlanırsaoverflow-clip-marginözelliği tarayıcı tarafından yoksayılır.overflow: clip, tüm kaydırma işlemlerini (hem kullanıcı tarafından başlatılan hem de JavaScript aracılığıyla programatik olarak yapılan) engeller.- Kutu kenarına hizalama: Kırpma sınırını iç kutu modeli kenarlarına tam olarak hizalamak için anahtar kelimeleri kullanın:
content-box: İçeriği tam olarak içerik alanının başladığı yerden kırparak dolgu alanını tamamen temiz bırakır. İçerik, dolgunun tam kenarında biter. İç içe yerleştirilmiş düzen modülleri için idealdir.padding-box(Varsayılan): İçeriği kenarlığın iç kenarından kırpar.border-box: İçeriği kenarlığın dış kenarından kırparak içeriğin yarı saydam bir kenarlığın altında kalmasına veya kısmen üst üste binmesine olanak tanır.
- Belirli bir ofset (taşma payı) tanımlama: Pikselleri kesmeden önce bir güvenlik bölgesi oluşturmak için uzunluk değeri (ör.
15pxveya5px) girin. Bu sayede, belirgin alt öğe gölgeleri, düzen geometrisini genişletmeden sınır kenarının ötesinde kırpılmadan oluşturulabilir. - Kutu kenarı ve ofseti birleştirme: Belirli bir kutu kenarından ofset uygulamak için hem kutu kenarını hem de uzunluk ofsetini aynı anda belirtin (ör.
content-box 15px).
Örnek Kod
Aşağıdaki örneklerde, dinamik kapsayıcı düzeni kontrolleri gösterilmektedir. Bu kontrollerde, otomatik iç içerik eğrisi iç içe yerleştirilmiş çerçeveleme ve alt öğe gölge korumasının yanı sıra progresif geliştirme yedekleri de gösterilmektedir.
Blok Kapsayıcılar: İç İçe Yerleştirilmiş Yuvarlak Eğriler
- Yuvarlatılmış köşeleri ve özel dolgusu olan bir üst kapsayıcıya
overflow-clip-margin: content-boxuygulayın. - İçerideki alt medya ve altbilgi bileşenlerine, eşmerkezli iç içerik kutusu sınırı boyunca benzer yuvarlak köşeler uygulayarak özel
calc()mantığı olmadan garip iç içe yerleştirme eğrilerini çözer.
<div class="nested-curve-parent">
<img src="avatar.jpg" alt="Nested Curve Demo">
<div class="nested-curve-footer">Card Footer</div>
</div>
/**
* Standard block layout container with outer corner radii and padding.
* Keeps base level 1 fallback clipping roughly at the inner padding box.
*/
.nested-curve-parent {
/* Level 1 Fallback: clips child roughly at the padding box */
overflow: hidden;
}
/* Inner footer component with 12px rounded to visually demonstrate automatic concentric corner clipping */
.nested-curve-footer {
background: #111;
color: #fff;
}
@supports (overflow-clip-margin: content-box) {
.nested-curve-parent {
/* MANDATORY: overflow: clip is required on non-replaced elements */
overflow: clip;
/* Automatically curves clipping edge to match inner content-box radius */
overflow-clip-margin: content-box;
}
}
Blok Kapsayıcılar: Alt Öğe Gölge Taşması
overflow: clipuygulayın ve düzen geometrisini değiştirmeden alt öğenin gölgesinin üst kapsayıcının dışında kırpılmadan oluşturulmasına izin veren görünür bir güvenlik bölgesi oluşturmak için genişletilmiş biroverflow-clip-marginuzunluk ofseti tanımlayın. Bu olmadan, alt öğenin gölgesi üst öğenin sınırında kırpılır.
<div class="safety-zone-parent">
<h4>Clipped Container</h4>
<p>Inner content boundaries safely contained.</p>
<!-- Child button element positioned inside with a prominent shadow -->
<button class="demo-glowing-btn">Submit</button>
</div>
/**
* Standard block layout container clipping inner content.
* Base fallback uses overflow: hidden, which abruptly slices child element shadows.
*/
.safety-zone-parent {
/* Level 1 Fallback: clips overflowing content but truncates child shadows */
overflow: hidden;
}
/* Child button element positioned inside with an expanded shadow */
.demo-glowing-btn {
display: block;
box-shadow: 0 8px 13px rgba(229, 46, 113, 0.7);
}
@supports (overflow-clip-margin: 15px) {
.safety-zone-parent {
overflow: clip;
/* Establishes a visible safety zone allowing child element shadows to render safely outside */
overflow-clip-margin: 15px;
}
}
Stratejik Uygulama ve En İyi Uygulamalar
overflow-clip-marginkullanırken hedef öğelereoverflow: clipUYGULAYIN. Özel veya iç kavisli kırpma kenar boşluklarını etkinleştirmek için standart blok düzeni kapsayıcılarındaoverflowdeğeriniclipolarak ayarlamak zorunludur.- Yuvarlatılmış köşelere sahip dolgulu kapsayıcılarda
overflow-clip-margin: content-boxdeğerini AYARLAYIN. Böylece, yuvarlatılmamış dahili alt öğeler, manuel dolgu çıkarma mantığı olmadan matematiksel olarak mükemmel iç içe yerleştirilmiş kenar eğrilerine otomatik olarak kırpılır. - Düzen geometrisini değiştirmeden veya genişletmeden keskin sınırlayıcı kutu kesilmesini önlemek için harici görsel efektler (ör.
filter: drop-shadow()) uygularkenoverflow-clip-marginöğesini belirli bir uzunluk ofsetiyle yapılandırın (DO). - Kapsayıcı, JavaScript aracılığıyla programatik kaydırma manipülasyonu gerektiriyorsa veya
position: stickyöğeleri için doğrudan düzen bağlamı olarak kullanılıyorsaoverflow: clipdeğerini UYGULAMAYIN.clip, kaydırmayı tamamen devre dışı bırakır.
Yedek Stratejiler
overflow: clip veya overflow-clip-margin için yerel destek sunmayan hedef ortamlarda, progresif geliştirme yedek stratejileri doğrudan görsel amaca bağlıdır:
- Temel sınırların korunmasını garanti etmek için temel deneyim olarak
overflow: hiddensürümüne geri dönün. - Gölge veya dış köşe rozetlerinin kesilmemesi gereken öğelerde
overflow: visibledeğerine geri dönün.
Progresif Geliştirme Yedek Uygulamasını Tamamlama
<!-- 1. Nested rounded edges fallback -->
<div class="demo-container-fallback">
<img src="example.jpg" alt="Nested Curve Fallback">
<div class="demo-footer-fallback">Footer</div>
</div>
<!-- 2. Child element shadow bleed fallback -->
<div class="demo-safety-parent">
<h4>Container</h4>
<p>Inner boundaries contained.</p>
<button class="demo-glowing-btn">Submit</button>
</div>
/**
* 1. Block Container Nested Curves Fallback
* Keeps base level 1 fallback clipping roughly at the inner padding box.
*/
.demo-container-fallback {
/* Level 1 Fallback: clip child roughly at padding box */
overflow: hidden;
}
.demo-container-fallback img {
object-fit: cover;
display: block;
}
@supports (overflow-clip-margin: content-box) {
.demo-container-fallback {
overflow: clip;
overflow-clip-margin: content-box;
}
}
/**
* 2. Child Element Shadow Bleed Fallback
* Base fallback clips content using overflow: hidden, abruptly truncating child element shadows.
*/
.demo-safety-parent {
/* Level 1 Fallback */
overflow: hidden;
}
.demo-glowing-btn {
display: block;
width: 100%;
padding: 6px 12px;
background: #e52e71;
box-shadow: 0 8px 13px rgba(229, 46, 113, 0.65);
}
@supports (overflow-clip-margin: 15px) {
.demo-safety-parent {
overflow: clip;
overflow-clip-margin: 15px;
}
}