ایجاد دیوهای کنار هم با ارتفاع متغیر با استفاده از Flexbox

creating side by side divs dynamic heights flexbox
20 آبان 1403

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

ابتدا، تمام دیوها را در یک کانتینر که خاصیت نمایش flex دارد قرار می‌دهیم. این خاصیت همه عناصر فرزند را به صورت خودکار کنار هم قرار می‌دهد. حالا می‌توانیم با استفاده از ویژگی‌های دیگری مثل flex-grow، مشخص کنیم چگونه فضا بین عناصر تقسیم شود.

یک خاصیت مهم دیگر در Flexbox، align-items است که می‌تواند برای تنظیم تراز عمودی دیوها استفاده شود. برای مثال، می‌توانیم تعریف کنیم که دیوها در یک سطح بالاترین یا پایین‌ترین نقطه قرار بگیرند.

همچنین می‌توانیم با استفاده از ویژگی justify-content چیدمان افقی دیوها را مشخص کنیم. به طور کلی، این ویژگی‌ها به ما قدرت زیادی برای کنترل چیدمان عناصر در صفحه می‌دهند.

در زیر یک مثال کاری از کاربرد Flexbox برای ایجاد دیوهای کنار هم ارائه شده است که به طور خودکار ارتفاعشان تنظیم می‌شود.


<div class="flex-container">
  <div class="flex-item">Content 1</div>
  <div class="flex-item">Content 2</div>
  <div class="flex-item">Content 3</div>
</div>

<style>
  .flex-container {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
  }
  .flex-item {
    background-color: #f0f0f0;
    margin: 5px;
    padding: 20px;
    flex-grow: 1;
  }
</style>

ابتدا، ما یک کانتینر به نام flex-container ایجاد کردیم که خاصیت display: flex دارد، این باعث می‌شود همه عناصر فرزند به صورت کنار هم نشان داده شوند.
سپس سه دیو با کلاس flex-item تعریف شده که هر کدام دارای محتوای خود هستند. این دیوها در کانتینر Flexbox قرار دارند.
justify-content: space-between باعث می‌شود که فضای بین دیوها به طور مساوی تقسیم شود، اما در عین حال اولین و آخرین دیو به لبه‌های کانتینر نزدیک‌تر می‌شوند.
align-items: stretch باعث می‌شود ارتفاع همه دیوها با بزرگ‌ترین دیوی که داخل کانتینر است هماهنگ شود، به این ترتیب همه آنها دارای ارتفاع متغیر اما هماهنگ خواهند بود.
flex-grow: 1 به هر دیو این امکان را می‌دهد که در صورت نیاز، فضای اضافه داخل کانتینر را بگیرد و بزرگ‌تر شود.

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

؟

چطور می‌توانم دیوهای بیشتری اضافه کنم و همچنان طراحی انعطاف‌پذیر بماند؟

؟

آیا این چیدمان در مرورگرهای قدیمی هم جوابگو است؟

؟

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