در حال بارگذاری...

مقدمه Flexbox

Flexbox (Flexible Box Layout) یک ماژول CSS است که به توسعه‌دهندگان اجازه می‌دهد عناصر صفحه وب را به صورت انعطاف‌پذیر و قابل پیش‌بینی مرتب کنند. تصور کنید در حال ساخت یک خانه هستید (like building a house)، Flexbox مانند چارچوب خانه عمل می‌کند که به شما امکان می‌دهد اتاق‌ها، مبلمان و تزئینات را به صورت منظم و هماهنگ بچینید. برخلاف روش‌های سنتی طراحی، Flexbox تنظیم فاصله‌ها، تراز کردن عناصر و ایجاد طراحی‌های واکنش‌گرا (responsive) را بسیار ساده‌تر می‌کند.
Flexbox در انواع پروژه‌های وب کاربرد دارد. در یک فروشگاه آنلاین (online shop) می‌تواند لیست محصولات را مرتب و منظم نمایش دهد، در یک سایت خبری (news website) عناوین و خلاصه‌ها را سازماندهی کند، در وبلاگ شخصی (personal blog) کارت‌های مقالات را زیبا بچیند و در پورتال دولتی (government portal) فرم‌ها و بخش‌های اطلاعاتی را منظم کند.
در این آموزش، شما خواهید آموخت که چگونه Flexbox را روی عناصر HTML اعمال کنید، جهت عناصر فرزند را کنترل کنید، آنها را افقی و عمودی تراز کنید و فاصله‌ها و شکست خطوط را مدیریت کنید. Flexbox به مانند سازمان‌دهی یک کتابخانه (organizing library) یا نوشتن نامه (writing a letter) است، هر عنصر جایگاه خود را پیدا می‌کند و به صورت خودکار با اندازه کانتینر سازگار می‌شود.

مثال پایه

css
CSS Code
/* فعال کردن Flexbox روی کانتینر */
.container {
display: flex; /* تبدیل کانتینر به Flexbox */
justify-content: center; /* تراز افقی عناصر */
align-items: center; /* تراز عمودی عناصر */
height: 200px; /* ارتفاع کانتینر */
border: 2px solid #000; /* نمایش مرز کانتینر */
}

/* استایل عناصر فرزند */
.item {
width: 50px;
height: 50px;
background-color: coral; /* رنگ برای وضوح دید */
margin: 5px; /* فاصله بین عناصر */
}

در این مثال پایه، display: flex باعث می‌شود کانتینر .container به یک کانتینر Flexbox تبدیل شود و عناصر فرزند (.item) به صورت انعطاف‌پذیر مرتب شوند.
justify-content: center عناصر را به صورت افقی در وسط قرار می‌دهد. مقادیر دیگری مانند space-between یا space-around، فاصله عناصر را به شکل متفاوت تنظیم می‌کنند.
align-items: center عناصر را به صورت عمودی در وسط تراز می‌کند. با flex-start و flex-end می‌توان عناصر را به بالا یا پایین کانتینر هدایت کرد.
height: 200px ارتفاعی برای کانتینر فراهم می‌کند تا تاثیر تراز عمودی دیده شود. border: 2px solid #000 کانتینر را به صورت بصری نشان می‌دهد.
هر .item دارای عرض و ارتفاع ثابت و فاصله margin است، مشابه چیدمان مبلمان در یک اتاق (decorating a room). این مثال می‌تواند برای کارت‌های محصول، کارت‌های مقالات یا بخش‌های کوچک سایت‌های خبری به کار رود تا یک چیدمان منظم ایجاد کند.

مثال کاربردی

css
CSS Code
/* چیدمان کارت‌ها در فروشگاه آنلاین */
.shop-container {
display: flex;
flex-wrap: wrap; /* اجازه می‌دهد عناصر به خط بعد بروند */
gap: 15px; /* فاصله بین عناصر */
justify-content: space-between; /* توزیع یکنواخت عناصر */
padding: 10px;
border: 1px solid #ccc;
}

/* کارت‌های محصول */
.shop-item {
flex: 1 1 250px; /* رشد و کوچک شدن با حداقل عرض 250px */
height: 180px;
background-color: lightblue;
display: flex;
justify-content: center;
align-items: center;
font-weight: bold;
}

در این مثال کاربردی، یک چیدمان کارت برای فروشگاه آنلاین ایجاد کردیم. flex-wrap: wrap اجازه می‌دهد که عناصر هنگام کمبود فضا به خط بعد بروند، که برای طراحی واکنش‌گرا ضروری است.
gap: 15px فاصله یکنواخت بین کارت‌ها ایجاد می‌کند بدون نیاز به margin جداگانه.
justify-content: space-between عناصر را به صورت یکنواخت روی خط پخش می‌کند.
flex: 1 1 250px به این معنی است که هر عنصر می‌تواند بسته به فضای موجود رشد یا کوچک شود و حداقل عرض آن 250px باشد. این ویژگی برای طراحی واکنش‌گرا در فروشگاه آنلاین، وبلاگ یا سایت خبری بسیار مهم است.
هر .shop-item نیز با display: flex و تراز justify-content و align-items مرکز محتوا را تنظیم می‌کند. این تکنیک می‌تواند برای کارت‌های خبری، پست‌های شبکه‌های اجتماعی یا بخش‌های اطلاعاتی پورتال‌های دولتی استفاده شود.

بهترین روش‌ها:

  1. طراحی Mobile-first: ابتدا برای صفحه‌های کوچک طراحی کنید و سپس برای صفحه‌های بزرگ‌تر مقیاس دهید.
  2. بهینه‌سازی عملکرد: از ساختارهای پیچیده Flexbox خودداری کنید تا سرعت رندر حفظ شود.
  3. کد قابل نگهداری: استفاده از نام‌های کلاس واضح و توضیحات مفید کد را قابل فهم و نگهداری می‌کند.
    اشتباهات رایج:

  4. اعمال display: flex روی عنصر اشتباه که باعث بهم ریختن چیدمان می‌شود.

  5. نادیده گرفتن طراحی واکنش‌گرا که باعث مشکل در نمایش در موبایل می‌شود.
  6. overrideهای بیش از حد که قوانین Flexbox را نقض می‌کند.
  7. استفاده نادرست از align-items یا justify-content که باعث تراز اشتباه می‌شود.
    نکات دیباگ: از DevTools مرورگر برای بررسی کانتینر Flexbox و تست مقادیر مختلف استفاده کنید. یک چیدمان منظم مانند سازمان‌دهی کتابخانه یا تزئین یک اتاق، صفحات شما را زیبا و کاربردی می‌کند.

📊 مرجع سریع

Property/Method Description Example
display تبدیل عنصر به Flexbox display: flex;
justify-content تراز افقی عناصر justify-content: center;
align-items تراز عمودی عناصر align-items: flex-start;
flex-wrap اجازه شکست خطوط برای عناصر flex-wrap: wrap;
flex کنترل رشد و کوچک شدن عناصر flex: 1 1 250px;

خلاصه و گام‌های بعدی: Flexbox یک روش انعطاف‌پذیر و آسان برای چینش عناصر در وب فراهم می‌کند و مدیریت چیدمان و واکنش‌گرایی را ساده می‌سازد. شما یاد گرفتید چگونه Flexbox را فعال کنید، عناصر را افقی و عمودی تراز کنید و فاصله و شکست خطوط را کنترل کنید.
Flexbox با ساختار HTML به طور مستقیم در ارتباط است و می‌تواند با JavaScript برای ایجاد چیدمان‌های تعاملی ترکیب شود. مراحل بعدی شامل یادگیری order برای تغییر ترتیب عناصر، align-self برای تراز فردی و flex-grow/flex-shrink برای کنترل دقیق واکنش‌گرا است. تمرین مداوم و اعمال آن در پروژه‌های واقعی، باعث تسلط بر چیدمان‌های حرفه‌ای و واکنش‌گرا می‌شود.

🧠 دانش خود را بیازمایید

آماده شروع

آزمون دانش شما

درک خود از این موضوع را با سوالات کاربردی بسنجید.

3
سوالات
🎯
70%
برای قبولی
♾️
زمان
🔄
تلاش‌ها

📝 دستورالعمل‌ها

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