overflow: hidden হল একটি "ব্লান্ট ইনস্ট্রুমেন্ট" যা প্রায় সবসময় প্যাডিং-বক্সে কন্টেন্ট ক্লিপ করে, overflow: clip-এর সাথে overflow-clip-margin যুক্ত হয়ে ব্লক কন্টেনার জুড়ে ফাইন-গ্রেনড লেআউট কন্ট্রোলের জন্য "স্ক্যালপেল" প্রদান করে।
overflow: clip এবং overflow-clip-margin-এর মাধ্যমে ক্লিপিং ঠিক কোথায় হয় তা নির্দিষ্ট করুন। আপনি ইনার বক্স-মডেলের প্রান্তের সাথে সঠিকভাবে সীমানা অ্যালাইন করতে পারেন অথবা নির্দিষ্ট অফসেট (একটি নিরাপত্তা মার্জিন) দ্বারা এলিমেন্টের বক্সের বাইরে ক্লিপিং সীমানা বাড়াতে পারেন। এই আধুনিক পদ্ধতিটি অত্যন্ত কার্যকর এবং ভিজ্যুয়াল এফেক্ট (যেমন, প্রমিনেন্ট চাইল্ড এলিমেন্ট শ্যাডো) আনক্লিপড রেন্ডার করার জন্য কাস্টম প্যাডিং এবং নেগেটিভ মার্জিন সহ অতিরিক্ত র্যাপার কন্টেনার যোগ করার পুরনো প্রয়োজনীয়তা দূর করে।
পরিবর্তিত এলিমেন্ট (<img>, <video>, <canvas> ইত্যাদি) ডিফল্ট হিসেবে overflow: clip ও overflow-clip-margin: content-box-এ সেট করা থাকে, যা আপনাকে object-fit বা border-radius ব্যবহার করা ছবি পরিষ্কারভাবে কন্টেন করার কন্ট্রোল দেয়।
কীভাবে প্রয়োগ করতে হয়
overflow: clipপ্রয়োগ করুন: টার্গেট এলিমেন্টেoverflow: clipচালু করা আছে কিনা তা নিশ্চিত করুন।overflow-clip-marginকার্যকর করার জন্য ব্লক লেআউট কন্টেনারেoverflow: clipসেট করা বাধ্যতামূলক।overflowযদিhidden,autoবাscroll-এ সেট করা থাকে, তাহলে ব্রাউজারoverflow-clip-marginপ্রপার্টি উপেক্ষা করে।overflow: clipসব স্ক্রলিং (ব্যবহারকারীর দ্বারা শুরু করা এবং জাভাস্ক্রিপ্টের মাধ্যমে প্রোগ্রাম্যাটিক) প্রতিরোধ করে।- বক্স-এজের সাথে অ্যালাইন করা: ইনার বক্স-মডেল এজের সাথে ক্লিপিং বাউন্ডারি সঠিকভাবে অ্যালাইন করতে কীওয়ার্ড ব্যবহার করুন:
content-box: কন্টেন্ট এরিয়া যেখানে শুরু হয় ঠিক সেখানে কন্টেন্ট ক্লিপ করে, প্যাডিং এরিয়া সম্পূর্ণ পরিষ্কার রাখে। প্যাডিংয়ের ঠিক শেষ প্রান্তে কন্টেন্ট শেষ হয়। নেস্টেড লেআউট মডিউলের জন্য দারুণ।padding-box(ডিফল্ট): বর্ডারের ভিতরের প্রান্তে কন্টেন্ট ক্লিপ করে।border-box: বর্ডারের বাইরের প্রান্তে কন্টেন্ট ক্লিপ করে, যার ফলে কন্টেন্টটি স্বচ্ছ বর্ডারের নিচে বা আংশিকভাবে ওভারল্যাপ করতে পারে।
- নির্দিষ্ট অফসেট (ব্লিড) নির্ধারণ করা: পিক্সেল কাটার আগে একটি নিরাপদ জোন তৈরি করতে দৈর্ঘ্যের মান (যেমন,
15pxবা5px) প্রদান করুন। This allows prominent child element shadows to render unclipped past the boundary edge without expanding layout geometry. - বক্স-এজ ও অফসেট একত্রিত করা: নির্দিষ্ট বক্স-এজ থেকে অফসেট করতে বক্স-এজ ও দৈর্ঘ্য অফসেট (যেমন,
content-box 15px) একসাথে উল্লেখ করুন।
কোডের উদাহরণ
নিম্নলিখিত উদাহরণগুলি ডাইনামিক কন্টেনার লেআউট কন্ট্রোল দেখায়, যা প্রোগ্রেসিভ এনহ্যান্সমেন্ট ফলব্যাকের পাশাপাশি অটোমেটেড ইনার কন্টেন্ট কার্ভ নেস্টেড ফ্রেমিং এবং চাইল্ড এলিমেন্ট শ্যাডো প্রোটেকশন প্রদর্শন করে।
ব্লক কন্টেনার: নেস্টেড রাউন্ডেড কার্ভ
- গোল কোণ ও কাস্টম প্যাডিং সহ পেরেন্ট কন্টেনারে
overflow-clip-margin: content-boxপ্রয়োগ করুন। - কাস্টম
calc()লজিক ছাড়াই বিশ্রী নেস্টিং কার্ভের সমস্যা সমাধান করে, কনসেন্ট্রিক ইনার কন্টেন্ট বক্স বাউন্ডারি বরাবর ইনার চাইল্ড মিডিয়া এবং ফুটার কম্পোনেন্টে একই ধরনের রাউন্ডেড কর্নার প্রয়োগ করুন।
<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;
}
}
ব্লক কন্টেনার: চাইল্ড এলিমেন্ট শ্যাডো ব্লিড
overflow: clipপ্রয়োগ করুন এবং একটি বর্ধিতoverflow-clip-marginদৈর্ঘ্যের অফসেট নির্ধারণ করুন যাতে একটি দৃশ্যমান নিরাপত্তা জোন তৈরি করা যায় যা লেআউট জ্যামিতি পরিবর্তন না করেই পেরেন্ট কন্টেনারের বাইরে চাইল্ডের শ্যাডোকে আনক্লিপড রেন্ডার করার অনুমতি দেয়। এটি না থাকলে, চাইল্ডের শ্যাডো পেরেন্টের বাউন্ডারিতে ক্লিপ করা হয়।
<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;
}
}
স্ট্র্যাটেজিক প্রয়োগ ও পেশাদার পদ্ধতি
overflow-clip-marginব্যবহার করার সময় টার্গেট এলিমেন্টেoverflow: clipপ্রয়োগ করুন, কারণ কাস্টম বা ইনার কার্ভড ক্লিপ মার্জিন অ্যাক্টিভেট করতে স্ট্যান্ডার্ড ব্লক লেআউট কন্টেনারেoverflow-কেclip-এ সেট করা বাধ্যতামূলক।- ম্যানুয়াল প্যাডিং সাবট্র্যাকশন লজিক ছাড়াই, রাউন্ডেড নয় এমন ইন্টার্নাল চাইল্ড এলিমেন্টকে ম্যাথমেটিক্যালি নিখুঁত নেস্টেড বর্ডার কার্ভে অটোমেটিক ক্লিপ করতে, রাউন্ডেড কর্নার সহ প্যাডেড কন্টেনারে
overflow-clip-margin: content-boxসেট করুন। - লেআউট জিওমেট্রি পরিবর্তন বা প্রসারিত না করে শার্প বাউন্ডিং বক্স ট্রাঙ্কেশন প্রতিরোধ করতে এক্সটার্নাল ভিজ্যুয়াল এফেক্ট (যেমন
filter: drop-shadow()) প্রয়োগ করার সময় নির্দিষ্ট দৈর্ঘ্যের অফসেট সহoverflow-clip-marginকনফিগার করুন। - কন্টেনারে জাভাস্ক্রিপ্টের মাধ্যমে প্রোগ্রাম্যাটিক স্ক্রল ম্যানিপুলেশন প্রয়োজন হলে অথবা
position: stickyএলিমেন্টের জন্য ইমিডিয়েট লেআউট কনটেক্সট হিসেবে কাজ করলে,overflow: clipপ্রয়োগ করবেন না, কারণclipস্ক্রলিং সম্পূর্ণভাবে বন্ধ করে দেয়।
ফলব্যাক স্ট্র্যাটেজি
overflow: clip বা overflow-clip-margin-এর জন্য নেটিভ সাপোর্ট নেই এমন টার্গেট এনভায়রনমেন্টের ক্ষেত্রে, প্রোগ্রেসিভ এনহ্যান্সমেন্ট ফলব্যাক স্ট্র্যাটেজি সরাসরি ভিজ্যুয়াল ইনটেন্টের উপর নির্ভর করে:
- মূল সীমানা বজায় রাখার গ্যারান্টি দিতে, বেস অভিজ্ঞতা হিসেবে
overflow: hidden-এ ফলব্যাক করুন। - ড্রপ-শ্যাডো বা এক্সটার্নাল কর্নার ব্যাজ ট্রাঙ্কেট করা যাবে না এমন এলিমেন্টের ক্ষেত্রে
overflow: visible-এ ফলব্যাক করুন।
প্রোগ্রেসিভ এনহ্যান্সমেন্ট ফলব্যাক প্রয়োগ সম্পূর্ণ করুন
<!-- 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;
}
}