مدل جعبهای یا 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 را به طور مؤثر حل کنید و طرحبندیهای دقیقتری ایجاد نمایید. تمرین مداوم و آزمایش روشهای مختلف به درک بهتر این مفهوم کمک میکند.