درک رابطۀ فلکس‌باکس با سایر روش‌های چیدمان CSS

understanding flexbox and other css layout methods
20 آبان 1403

سلام دوستان، در اینجا می‌خواهیم درباره فِلکس‌باکس و چگونگی رابطه آن با دیگر روش‌های چیدمان در CSS گفتگو کنیم. ممکن است فلکس‌باکس را به عنوان یک روش مدرن برای چینش عناصر در صفحات وب بشناسید. در دنیای طراحی وب، ما معمولاً روش‌های مختلفی برای چیدمان عناصر داریم، از جمله استفاده از ویژگی‌های CSS مانند float، grid، و البته flexbox. در این مقاله، ما بررسی می‌کنیم که چگونه فلکس‌باکس در مقایسه با این روش‌ها، چه مزایایی دارد و چگونه می‌توانید از آن بطور موثر استفاده کنید.

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

یکی از ویژگی‌های برجسته فلکس‌باکس، سیستم محور (Flex direction) است که به شما اجازه می‌دهد تا عناصر را به صورت افقی یا عمودی سازماندهی کنید. این ویژگی بسیار کارآمد در مواقعی که می‌خواهید طراحی‌های ریسپانسیو ایجاد کنید، به کار می‌آید. برعکس، ویژگی‌های قدیمی مانند float که برای چینش عناصر در طرفین صفحه بکار می‌رود، اجرای کدها و مدیریت آنها را بسیار پیچیده‌تر می‌کرد.

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


<div class="container">
  <div class="item">۱</div>
  <div class="item">۲</div>
  <div class="item">۳</div>
</div>
<style>
.container {
  display: flex;
  justify-content: space-between;
}
.item {
  width: 100px;
  height: 100px;
  background-color: lightblue;
  margin: 10px;
}
</style>

توضیح قدم به قدم کد

<div class="container">
یک عنصر div تعریف شده به عنوان کانتینر اصلی برای آیتم‌ها.

<div class="item">۱</div>
یک آیتم داخل کانتینر که شامل شماره ۱ است.

.container { display: flex; }
استفاده از خاصیت display: flex که این عنصر را یک فلکس‌باکس معرفی می‌کند.

justify-content: space-between;
گرایش عناصر آیتم به دو سر کانتینر با فضای متناسب بین آنها.

.item { width: 100px; height: 100px; }
اندازه‌گذاری اولیه برای ابعاد هر آیتم.

background-color: lightblue;
استفاده از رنگ پس‌زمینه روشن برای آیتم‌ها.

margin: 10px;
فضای بیرونی اطراف هر آیتم برای زیبایی‌بخشی به چینش.

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

؟

چرا باید از فلکس‌باکس استفاده کنم؟

؟

تفاوت فلکس‌باکس با Grid در CSS چیست؟

؟

چگونه می‌توانم عناصر را در فلکس‌باکس مرکزی کنم؟