فلکسباکس یکی از ویژگیهای جالب CSS است که به ما اجازه میدهد تا ترتیب و چیدمان عناصر در صفحات وب را به شکل انعطافپذیری تنظیم کنیم. این ویژگی به خصوص برای طراحیهای پاسخگو یا واکنشگرا بسیار کاربردی است. یعنی صفحاتی که در دستگاههای مختلف به یک شکل مناسب نمایش داده میشود.
اصلیترین هدف Flexbox این است که به شما کمک کند عناصر را به سادگی و با کنترل بیشتری در صفحات خود بچینید. تنها با چند خط کد CSS میتوانید کاملاً نحوه چیدمان آیتمها را تغییر دهید. اما یکی از چالشهای بزرگی که معمولاً با آن مواجه میشویم، این است که چگونه عناصر فلکسباکس را در طراحیهای واکنشگرا مرتب کنیم بدون اینکه محتوای ما بریده یا به هم فشرده شود.
برای جلوگیری از برش محتوای فلکسباکس و ایجاد طراحی واکنشگرا، باید از ویژگیهای مناسب CSS بهره بگیرید. ویژگیهایی چون flex-wrap
برای شکستن خطوط و justify-content
و align-items
برای موقعیتدهی مناسب آیتمها در فلکس کانتینر نقش مهمی دارند. این ویژگیها کمک میکنند تا محتوای شما در دستگاههای مختلف درست نمایش داده شود و کاربر تجربه خوبی از مشاهده سایت شما داشته باشد.
با استفاده از Media Queryها میتوانید بر اساس اندازه صفحهنمایش، تنظیمات فلکسباکس خود را تغییر دهید و چیدمان خود را برای دستگاههای مختلف بهینه کنید. این روش به شما امکان میدهد که یک رابط کاربری پویا و انعطافپذیر ایجاد کنید.
در ادامه یک مثال از استفاده چندین ویژگی Flexbox برای ایجاد یک طراحی پاسخگو خواهیم داشت. با این توضیحات شما میتوانید طرح های خود را برای دستگاههای مختلف بهینه کنید.
div.container <!-- کانتینر اصلی که آیتمها را شامل میشود -->
display: flex; <!-- تنظیم کانتینر به حالت فلکس -->
flex-wrap: wrap; <!-- شکستن خطوط در صورت نیاز -->
justify-content: space-between; <!-- جاگذاری آیتمها در کانتینر -->
align-items: center; <!-- تراز میانی آیتمها -->
@media (max-width: 768px) <!-- تنظیمات برای صفحهنمایشهای کوچکتر -->
div.container
flex-direction: column; <!-- چیدمان عمودی آیتمها -->
همانطور که مشاهده میکنید:
div.container
: نقش ظرف اصلی فلکس را دارد که سایر عناصر در آن قرار میگیرند.
display: flex;
: کانتینر را به حالت فلکس تنظیم میکند، که برای چیدمان عناصر لازم است.
flex-wrap: wrap;
: اجازه میدهد آیتمها به خطوط بعدی بروند، اگر فضای کافی وجود نداشته باشد.
justify-content: space-between;
: آیتمها را با فاصله مساوی در کانتینر توزیع میکند.
align-items: center;
: تمامی آیتمها را به صورت عمودی در وسط تراز میکند.
@media برای اعمال تنظیمات واکنشگرا بر اساس عرض صفحهنمایش استفاده میشود.
چنانچه مثال بالا، چیدمان افقی آیتمها در صفحهنمایشهای بزرگتر و چیدمان عمودی در صفحههای کوچکتر را فراهم میکند.