এক নজরে
কোনও কন্টেনারের প্রান্তে ট্রান্সপারেন্সি গ্রেডিয়েন্ট প্রয়োগ করতে (যেমন, স্ক্রল করার জন্য আরও কন্টেন্ট উপলভ্য আছে তা বোঝাতে বা টেক্সট ফেড আউট করতে), লিনিয়ার গ্রেডিয়েন্ট সহ CSS মাস্কিং ব্যবহার করুন। এই পদ্ধতিটি আধা-স্বচ্ছ ওভারলে ব্যবহার করার চেয়ে ভাল কারণ এটি আসলে কন্টেন্টকে নিজেই ফেড করে, টেক্সট নির্বাচন বা পয়েন্টার ইভেন্টে হস্তক্ষেপ না করে ব্যাকগ্রাউন্ডকে স্বাভাবিকভাবে দেখানোর অনুমতি দেয়।
প্রয়োগ
সফ্ট এজ ফেড প্রয়োগ করতে:
কন্টেনারের নিচের প্রান্ত ফেড করা হচ্ছে
স্ক্রল করা যায় এমন কোনও অংশে নিচে আরও কন্টেন্ট আছে তা বোঝানোর জন্য এটি উপযোগী।
.container {
/* Enable scrolling */
overflow-y: auto;
/* MANDATORY: Use vendor prefix for wider support in older browsers */
-webkit-mask-image: linear-gradient(to bottom, black 80%, transparent 100%);
/* Standard property for modern browsers */
mask-image: linear-gradient(to bottom, black 80%, transparent 100%);
}
উপরে ও নিচে উভয় প্রান্ত ফেড করা হচ্ছে
দুটি প্রান্তই ফেড করতে আপনি একাধিক কালার স্টপ সহ একটি গ্রেডিয়েন্ট ব্যবহার করতে পারেন।
.dual-fade-container {
/* Content is visible between 10% and 90% of the height */
-webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 90%, transparent 100%);
mask-image: linear-gradient(to bottom, transparent 0%, black 10%, black 90%, transparent 100%);
}
ফলব্যাক স্ট্র্যাটেজি
কোনও ব্রাউজারে mask-image বা প্রিফিক্সড ভার্সন কাজ না করলে:
- কন্টেন্টটি আবছা হবে না এবং শার্প এজ সহ দেখানো হবে।
- ইন্টারফেস এখনও কাজ করছে এবং ফেড (প্রোগ্রেসিভ এনহ্যান্সমেন্ট) ছাড়াই কন্টেন্ট পড়া যাচ্ছে কিনা তা নিশ্চিত করুন।
- আপনি ফলব্যাক হিসেবে আংশিক-স্বচ্ছ ওভারলে ব্যবহার করতে পারেন, তবে মনে রাখবেন যে এর জন্য ব্যাকগ্রাউন্ডের রঙ জানা প্রয়োজন এবং
pointer-events: noneব্যবহার না করা হলে এটি টেক্সট বেছে নেওয়ার ক্ষেত্রে বাধা সৃষ্টি করতে পারে।
/* Fallback using an overlay for browsers that do not support masking */
@supports (not (mask-image: linear-gradient(to bottom, black, transparent))) and (not (-webkit-mask-image: linear-gradient(to bottom, black, transparent))) {
.container {
position: relative;
}
.container::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 20%;
/* Fallback assumes a solid background color (e.g., white) */
background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,1));
pointer-events: none; /* Allow interaction with text underneath */
}
}