حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
آموزش CSS از صفر؛ طراحی صفحه با Flexbox و Grid

آموزش مدل جعبه CSS؛ محتوا، padding، border و margin

مدل جعبه CSS؛ فاصله، حاشیه و اندازه نهایی · 0٪

مرورگر برای هر عنصر یک جعبه در نظر می‌گیره. از داخل به بیرون، اول محتوا رو داریم، بعد padding یا فاصله داخلی، بعد border یا خط دور و در آخر margin یا فاصله بیرونی. وقتی این لایه‌ها رو جدا ببینی، راحت‌تر می‌فهمی چرا عرض دیده‌شده یک کارت با عدد width فرق داره. حالت content-box یعنی width فقط عرض محتوا رو تعیین می‌کنه.

توی مثال عرض محتوا ۱۰۰ پیکسله، دو طرف هرکدوم ۱۰ پیکسل فاصله داخلی و ۲ پیکسل خط داریم؛ پس عرض بیرونی خط‌دار ۱۲۴ پیکسل می‌شه. margin بیرون این اندازه است و به زمینه رنگی کارت اضافه نمی‌شه. خطای رایج اینه که margin رو بخشی از سطح رنگی بدونیم یا padding رو از عرض محتوا کم کنیم. فعلاً ارتفاع متن متغیره، پس روی حساب عرض تمرکز می‌کنیم. توی ابزار مرورگر هم معمولاً این چهار لایه با رنگ‌های جدا نمایش داده می‌شن و می‌تونی علت فاصله‌های غیرمنتظره رو از همین‌جا پیدا کنی.

✍️ مثال حل‌شده:

<div class="sample">کادر</div>
<style>.sample { width:100px; padding:10px; border:2px solid navy; margin:6px; box-sizing:content-box; }</style>

حالا نوبت توئه: نمونه .box را بررسی کن: width محتوا ۱۲۰، padding هر طرف ۱۲ و border هر طرف ۲ پیکسل است. با content-box، عرض تا لبه بیرونی border برابر ۱۴۸ پیکسل می‌شود؛ margin ده پیکسلی بیرون این جعبه است. این گام آموزشی است و تغییر کد لازم ندارد.

فعالیت شما

نمونه .box را بررسی کن: width محتوا ۱۲۰، padding هر طرف ۱۲ و border هر طرف ۲ پیکسل است. با content-box، عرض تا لبه بیرونی border برابر ۱۴۸ پیکسل می‌شود؛ margin ده پیکسلی بیرون این جعبه است. این گام آموزشی است و تغییر کد لازم ندارد.

مطالعهٔ این گام برای همه آزاد است

برای پاسخ‌دادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیت‌ها را داشته باشید.

برای انجام فعالیت وارد شوید

برای انجام فعالیت‌ها ابتدا این دوره‌های پیش‌نیاز را تکمیل کنید:

کد اولیهٔ فعالیت

<!doctype html>
<html lang="fa" dir="rtl">
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>تمرین CSS</title></head>
<body>
<div class="box">چهار لایه جعبه</div>
</body>
</html>

ظاهر صفحه (CSS)

body{margin:0;padding:16px;font-family:Tahoma,Arial,sans-serif;direction:rtl;color:#1f2937;background:#f3f4f6}*{box-sizing:content-box}
.box{width:120px;padding:12px;border:2px solid navy;margin:10px;box-sizing:content-box;background-color:white}