تنظیم اسکرولر روی یک فلکس‌باکس

setting scrollbar on flexbox
20 آبان 1403

فلکس‌باکس یکی از ویژگی‌های محبوب CSS است که برای طراحی رابط کاربری منظم و منسجم مورد استفاده قرار می‌گیرد. اما در برخی موارد، ممکن است بخواهیم برای محتوایی که درون فلکس‌باکس قرار دارد، قابلیت اسکرول کردن بسازیم. رسیدن به یک طراحی کاربرپسند با توجه به حجم محتوا می‌تواند چالشی باشد.

اکنون بیایید ببینیم چگونه می‌توان این کار را به آسانی انجام داد. فرض کنید یک لیست از آیتم‌ها داریم که باید در یک ظرف والد با استفاده از فلکس‌باکس قرار گیرند و اگر این آیتم‌ها از محدودیت ارتفاع خود خارج شدند، بتوانیم آنها را اسکرول کنیم.

برای این کار، معمولاً ابتدا نیاز داریم ظرفیت و یا محدودیت‌هایی را برای ظرف والد تعیین کنیم. با تنظیم overflow روی auto می‌توانیم به سادگی اسکرولر را اضافه کنیم. این ویژگی، زمانی که محتوا از ظرف والد بزرگ‌تر شود، به طور خودکار اسکرولر را نمایش می‌دهد.

همچنین می‌توانیم با تنظیمات اضافی، مثل ارتفاع یا عرض محدود کننده، اطمینان حاصل کنیم که فلکس‌باکس به خوبی با سایر عناصر طراحی هماهنگ باشد. برای مثال، اگر تنظیم کنیم فلکس‌باکس فقط در بخشی خاص از صفحه باشد و نه تمام آن، تجربه کاربری بهتری حاصل شود.

برای مثال، به کد زیر دقت کنید که چگونگی تنظیم یک کانتینر فلکس‌باکس با قابلیت اسکرول را نشان می‌دهد:


    <div class="container">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
<div class="item">Item 4</div>
</div>
<style>
.container {
display: flex;
flex-direction: column;
overflow: auto;
max-height: 200px;
border: 1px solid #ccc;
}
.item {
padding: 10px;
border-bottom: 1px solid #ddd;
}
</style>

در بخش زیرین کد، یک div به نام container داریم که دارای ویژگی display: flex; است.
سپس ویژگی flex-direction را با مقدار column تنظیم کرده‌ایم، به اینصورت که آیتم‌ها به صورت ستونی نمایش داده شوند.
ویژگی overflow: auto; باعث می‌شود تا زمانی که محتوا بیشتر از فضای قابل نمایش باشد، اسکرولر نمایش داده شود.
ویژگی max-height: 200px; ارتفاع ماکزیمم ظرف را تعیین می‌کند به طوری که اگر آیتم‌ها بیشتر شدند، اسکرول کنند.
علاوه بر آن، border و border-bottom را برای زیبایی به کد اضافه کرده‌ایم تا جداکننده‌ای بین آیتم‌ها باشد.

سوالات متداول

؟

چگونه می‌توانم به فلکس‌باکس اسکرولر اضافه کنم؟

؟

آیا می‌توانم اسکرولر عمودی و افقی همزمان داشته باشم؟