اگر تا به حال برای وسط چین کردن یک عنصر، هم‌ارتفاع کردن کارت‌ها یا ساخت منوی ریسپانسیو ساعت‌ها وقت گذاشته باشید، احتمالاً ارزش واقعی Flexbox را درک کرده‌اید.

Flexbox یکی از قدرتمندترین قابلیت‌های CSS است که طراحی رابط کاربری را بسیار ساده‌تر کرده است. اما بسیاری از طراحان فقط از چند ویژگی ابتدایی آن استفاده می‌کنند و از امکانات حرفه‌ای تر آن خبر ندارند.

در این مقاله، 10 ترفند کاربردی Flexbox را بررسی می‌کنیم که باعث می‌شوند سریع‌تر کدنویسی کنید، کدهای تمیزتری بنویسید و چیدمان های حرفه ای تری بسازید.

ترفند کاربردی flexbox در css

Flexbox چیست؟

Flexbox یا Flexible Box Layout یک سیستم چیدمان در CSS است که برای مرتب کردن عناصر در یک محور افقی یا عمودی طراحی شده است.

مزایای آن:

  • کاهش کدنویسی
  • ساخت Layout ریسپانسیو
  • کنترل آسان فاصله‌ها
  • هم تراز کردن عناصر
  • انعطاف بالا

1. به جای Margin از Gap استفاده کنید

بسیاری از افراد هنوز برای فاصله بین آیتم ها از Margin استفاده می‌کنند.

اما Flexbox ویژگی بسیار بهتری دارد:

gap: 10px;

مزایا:

  • کد خواناتر
  • مدیریت آسان فاصله ها
  • بدون مشکل در اولین و آخرین عنصر

2. وسط‌چین کردن عناصر فقط با دو خط

یکی از معروف ترین قابلیت‌های Flexbox:

display:flex;
justify-content:center;
align-items:center;

با همین سه خط، عنصر هم افقی و هم عمودی وسط قرار می‌گیرد.

3. از Flex-grow برای پر کردن فضای خالی استفاده کنید

اگر می‌خواهید یک بخش تمام فضای باقی‌مانده را اشغال کند:

flex-grow:1;

کاربردها:

  • Sidebar
  • فرم ها
  • داشبوردها
  • کارت ها

4. با Flex-wrap طراحی ریسپانسیو بسازید

به جای اینکه آیتم‌ها از صفحه بیرون بزنند:

flex-wrap:wrap;

استفاده کنید.

نتیجه:

  • آیتم ها خودکار به سطر بعد منتقل می شوند.

5. ترتیب نمایش را بدون تغییر HTML عوض کنید

ویژگی:

order

مثلاً:

order:2;

کاربرد:

  • نسخه موبایل
  • پنل مدیریت
  • کارت محصولات

بدون تغییر ساختار HTML.

6. همه کارت‌ها را هم ارتفاع کنید

یکی از مشکلات رایج طراحی سایت:

کارت‌هایی با ارتفاع متفاوت.

کافی است:

align-stretch;

یا مقدار پیش‌فرض Flexbox را حفظ کنید تا همه کارت ها هم اندازه شوند.

7. از Auto Margin برای هل دادن عناصر استفاده کنید

مثلاً در منو:

margin-left:auto;

باعث می‌شود عنصر تا انتهای سطر حرکت کند.

کاربرد:

  • دکمه ورود
  • آیکون پروفایل
  • سبد خرید

8. جهت Layout را فقط با Flex-direction تغییر دهید

بدون تغییر HTML:

flex-direction:column;

یا

row-reverse

این ویژگی مخصوصاً در طراحی نسخه موبایل بسیار کاربردی است.

ویژگی reverse عناصری که دارای flexbox هستند، آیتم های داخل عنصر را برعکس میکند . مثلا آیتم آخری را ابتدا نمایش میدهد .

9. از Align-self برای یک عنصر خاص استفاده کنید

گاهی فقط یک آیتم باید متفاوت باشد.

به جای تغییر همه:

align-self:center;

فقط همان عنصر تغییر می‌کند.

10. Flexbox را با Media Query ترکیب کنید

قدرت واقعی Flexbox زمانی مشخص می‌شود که همراه Media Query استفاده شود.

مثلاً:

دسکتاپ

row

موبایل

column

نتیجه:

  • رابط کاربری حرفه‌ای
  • ریسپانسیو
  • بدون کدنویسی پیچیده

جدول ویژگی ترفند کاربردی flexbox

ویژگیکاربرد
justify-contentتراز افقی
align-itemsتراز عمودی
gapفاصله بین آیتم‌ها
flex-wrapشکستن سطر
flex-growپر کردن فضای خالی
flex-shrinkکوچک شدن آیتم
flex-basisاندازه اولیه
orderتغییر ترتیب
align-selfتراز یک آیتم خاص
flex-directionجهت چیدمان

چه زمانی از Flexbox استفاده کنیم؟

Flexbox بهترین انتخاب برای:

  • منوی سایت
  • کارت محصولات
  • فرم‌ها
  • نوار ابزار
  • دکمه‌ها
  • هدر
  • فوتر
  • پنل کاربری
  • لیست‌ها
  • بخش‌های کوچک رابط کاربری

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

جمع بندی نهایی

Flexbox یکی از مهم‌ترین قابلیت‌های CSS است که با یادگیری چند ترفند ساده می‌تواند سرعت طراحی و کیفیت کدنویسی شما را به شکل محسوسی افزایش دهد. ترفند کاربردی flexbox مانند gap، flex-wrap، flex-grow و order باعث می‌شوند بدون پیچیده کردن کدها، چیدمان‌های تمیز، منعطف و ریسپانسیو ایجاد کنید.

اگر در ابتدای مسیر طراحی قالب سایت هستید، پیشنهاد می‌شود پس از تسلط بر Flexbox، یادگیری CSS Grid و سپس ترکیب این دو تکنیک را در پروژه‌های واقعی آغاز کنید. این مهارت ها پایه ای محکم برای طراحی رابط های کاربری مدرن و حرفه‌ای خواهند بود.


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

خیر. Flexbox برای چیدمان یک‌بعدی (سطر یا ستون) مناسب است، در حالی که CSS Grid برای چیدمان‌های دو‌بعدی طراحی شده است.

بله. Flexbox همراه با Media Query یکی از بهترین روش‌ها برای ساخت صفحات ریسپانسیو محسوب می‌شود.

بله. تمامی مرورگرهای مدرن مانند Chrome، Firefox، Edge و Safari از Flexbox پشتیبانی کامل دارند.

بله. اگر قصد دارید با HTML و CSS قالب سایت طراحی کنید، Flexbox یکی از مهم‌ترین ابزارهایی است که باید به آن مسلط باشید.

منابع : w3scools css-tricks