چگونه ارتفاع پیش‌فرض یک کانتینر با اندازه پویا را ثابت نگه داریم؟

fix dynamic container height css
20 آبان 1403

سلام! احتمالاً برای شما هم پیش اومده که وقتی یک کانتینر (مثلاً یک div) با توجه به محتوای داخلش ارتفاعش تغییر می‌کنه و این ممکنه دردسرساز بشه، مخصوصاً وقتی ظاهر صفحه‌مون رو به‌هم بریزه. تو این شرایط می‌تونیم از چند راهکار برای ثابت نگه داشتن ارتفاع این کانتینر استفاده کنیم.

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

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

حالا بیایید یک مثال عملی رو بررسی کنیم که چجوری می‌تونیم این موضوع رو مدیریت کنیم:


<style>
  .container {
    height: 300px; /* ارتفاع ثابت */
    overflow: auto; /* برای مدیریت محتوای اضافی */
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #f0f0f0;
  }
</style>
<div class="container">
  <p>محتوای شما اینجا قرار می‌گیرد.</p>
</div>

در این مثال، یک کانتینر با ارتفاع 300 پیکسل داریم. overflow: auto; به ما کمک می‌کنه تا محتوای اضافی مدیریت بشه.
همچنین، با استفاده از display: flex; و تنظیمات مرتبط با اون، محتوا رو در مرکز کانتینر قرار می‌دیم تا از لحاظ بصری هم زیبا به‌نظر بیاد.

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

؟

چطور می‌تونم با Flexbox، ارتفاع کانتینر رو ثابت نگه دارم؟

؟

آیا استفاده از overflow: auto; همیشه لازمه؟

؟

آیا استفاده از height ثابت مشکلی ایجاد نمی‌کنه؟