سرریز (Overflow)
آشنایی با overflow در CSS: hidden، scroll، auto و مدیریت محتوای سرریز شده
Overflow چیست؟
وقتی محتوای یک عنصر بیشتر از فضای آن است، سرریز (Overflow) میکند. ویژگی overflow تعیین میکند چه اتفاقی بیفتد.
مقادیر overflow
| مقدار | توضیح |
|---|---|
visible | نمایش داده میشود (پیشفرض) |
hidden | مخفی میشود ⭐ |
scroll | همیشه اسکرول دارد |
auto | در صورت نیاز اسکرول ⭐ |
clip | مثل hidden اما بدون اسکرول |
۱. Overflow: Hidden
محتوای اضافی کاملاً بریده میشود:
.box {
width: 200px;
height: 150px;
overflow: hidden;
}
۲. Overflow: Scroll
همیشه اسکرولبار نمایش داده میشود:
.box {
height: 200px;
overflow: scroll;
/* در ویندوز اسکرولبار همیشه دیده میشود */
}
۳. Overflow: Auto
فقط در صورت نیاز اسکرولبار نمایش داده میشود:
.box {
height: 200px;
overflow: auto; /* اگر محتوا بلندتر باشد، اسکرول */
}
overflow افقی و عمودی جداگانه
.box {
overflow-x: hidden; /* افقی مخفی */
overflow-y: auto; /* عمودی اسکرول */
}
کاربردهای overflow
۱. متن کوتاه شده (Truncate)
.truncate {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
۲. باکس اسکرول
.chat-box {
height: 400px;
overflow-y: auto;
}
۳. clearfix با overflow
.container {
overflow: hidden; /* یا auto */
/* floatهای فرزندان را پاک میکند */
}
۴. برش تصویر
.image-crop {
width: 300px;
height: 200px;
overflow: hidden;
border-radius: 12px;
}
.image-crop img {
width: 100%;
height: 100%;
object-fit: cover;
}
text-overflow
| مقدار | توضیح |
|---|---|
clip | برش ساده (پیشفرض) |
ellipsis | سه نقطه (...) ⭐ |
اسکرولبار سفارشی
.custom-scroll::-webkit-scrollbar {
width: 8px;
}
.custom-scroll::-webkit-scrollbar-track {
background: #f1f1f1;
border-radius: 4px;
}
.custom-scroll::-webkit-scrollbar-thumb {
background: #3498db;
border-radius: 4px;
}
.custom-scroll::-webkit-scrollbar-thumb:hover {
background: #2980b9;
}
بهترین شیوهها
- از
overflow: autoاستفاده کنید — اسکرول فقط وقتی لازم باشد - برای متنهای کوتاه از truncate استفاده کنید
- از
overflow-x: hiddenبرای جلوگیری از اسکرول افقی ناخواسته - اسکرولبار را سفارشی کنید تا زیباتر باشد
- برای موبایل،
-webkit-overflow-scrolling: touchاضافه کنید
نکات مهم
overflow: hiddenمیتواند برای clearfix استفاده شودoverflowیک Stacking Context میسازدtext-overflowفقط باwhite-space: nowrapکار میکند- اسکرولبار سفارشی فقط در WebKit (Chrome، Safari) کار میکند
- در موبایل، momentum scrolling را فعال کنید
این مبحث بخشی از دوره آموزش کامل CSS است.