مدل جعبه‌ای یا box model یکی از مفاهیم پایه‌ای در CSS است که نحوه نمایش و چیدمان عناصر را تعیین می‌کند. هر عنصر در صفحه به صورت یک جعبه مستطیلی نمایش داده می‌شود که از چهار بخش اصلی تشکیل شده است: محتوا، حاشیه داخلی (padding)، حاشیه (border) و حاشیه خارجی (margin). مشکلات همترازی معمولاً زمانی رخ می‌دهند که این بخش‌ها به درستی مدیریت نشوند.

کاربردهای عملی

درک صحیح box model به شما کمک می‌کند تا:

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

نمونه کدهای مرتبط

در ادامه سه مثال کاربردی برای رفع مشکلات همترازی ارائه شده است:

مثال ۱: استفاده از box-sizing

/* تنظیم box-sizing برای همه عناصر */
* {
  box-sizing: border-box;
}

.container {
  width: 300px;
  padding: 20px;
  border: 5px solid #333;
  /* عرض واقعی 300px باقی می‌ماند */
}

مثال ۲: مدیریت margin collapsing

.box {
  margin: 20px 0;
  /* برای جلوگیری از collapse می‌توان از padding استفاده کرد */
  padding: 1px 0;
}

/* یا از display: inline-block استفاده کنید */
.alternative {
  display: inline-block;
  width: 100%;
}

مثال ۳: ترازبندی افقی با flexbox

.parent {
  display: flex;
  justify-content: center; /* تراز افقی */
  align-items: center; /* تراز عمودی */
}

.child {
  width: 100px;
  height: 100px;
}

خلاصه درس

  • همیشه از box-sizing: border-box استفاده کنید تا محاسبات اندازه‌گیری ساده‌تر شود
  • برای ترازبندی مدرن از Flexbox یا CSS Grid استفاده نمایید
  • مشکل margin collapsing را در نظر بگیرید و راه‌حل‌های مناسب را اعمال کنید
  • از ابزارهای توسعه‌دهنده مرورگر برای بررسی box model عناصر استفاده کنید
  • برای عناصر inline-block فاصله بین آن‌ها را با font-size: 0 در والد کنترل کنید

با رعایت این نکات و استفاده از تکنیک‌های ارائه شده، می‌توانید مشکلات همترازی در box model را به طور مؤثر حل کنید و طرح‌بندی‌های دقیق‌تری ایجاد نمایید. تمرین مداوم و آزمایش روش‌های مختلف به درک بهتر این مفهوم کمک می‌کند.

توسعه دهندگان
نیما جاهد