تحجيم الصندوق (Box Sizing)
جزء من قسم Styling with CSS في رحلة HTML على Coddy. الدرس 39 من 76.
في CSS، تُعد box-sizing خاصية تحدد كيفية حساب العرض والارتفاع الإجماليين لعنصر. افتراضيًا، تتضمن الخاصيتان width وheight حجم content فقط، ولا تأخذان في الحسبان padding أو border أو الهوامش. ومع ذلك، باستخدام خاصية box-sizing، يمكنك تغيير هذا behavior وجعل الخاصيتين width وheight تتضمنان أحجام padding وborder أيضًا.
يمكن أن يبسّط هذا حسابات التخطيط ويمنع مشكلات التحجيم غير المتوقعة.
إليك الصيغة الأساسية لاستخدام الخاصية box-sizing:
selector {
box-sizing: value;
}value: سلوك box-sizing المطلوب، والذي يمكن أن يكون واحدًا مما يلي:
content-box: هذه هي القيمة الافتراضية. خصائصwidthوheightتتضمن حجم المحتوى فقط. تتم إضافة الحشو والحدود والهوامش خارج العرض والارتفاع المحددين.
border-box: تتضمن خصائصwidthوheightأحجام content وpadding وborder. وتُضاف الهوامش خارج العنصر.
على سبيل المثال:
div {
width: 300px;
height: 200px;
padding: 20px;
border: 5px solid black;
box-sizing: content-box; /* Default behavior */
}
.container {
width: 400px;
height: 300px;
padding: 30px;
border: 10px solid red;
box-sizing: border-box;
}في هذا المثال، يحتوي العنصر <div> على قيمة box-sizing تساوي content-box. وهذا يعني أن العرض الفعلي المعروض للعنصر <div> سيكون 300px (المحتوى) + 40px (padding الأيسر والأيمن) + 10px (الحد الأيسر والأيمن) = 350px. وسيُحسَب height بالطريقة نفسها.
من ناحية أخرى، فإن العنصر الذي يحمل الفئة container لديه قيمة box-sizing تساوي border-box. في هذه الحالة، سيتضمن width المحدد بقيمة 400px المحتوى والحشو والحدود. ستنكمش مساحة المحتوى الفعلية لاستيعاب الحشو والحدود، مما يؤدي إلى عرض محتوى يساوي 400px - 60px (الحشو الأيسر والأيمن) - 20px (الحد الأيسر والأيمن) = 320px. وسيُحسَب الارتفاع بالطريقة نفسها.
التحدي
سهللديك مستند HTML يتضمن عنصرَي (<div>)، ولكلٍّ منهما فئة مختلفة. مهمتك هي استخدام الخاصية box-sizing للتحكم في كيفية حساب عرض هذه العناصر وارتفاعها. اتبع الخطوات التالية:
- اكتب قاعدة CSS تستهدف عنصر
<div>الذي يحمل الفئة<strong>content-box-div</strong>. عيّن قيمةwidthإلى300px، وقيمةheightإلى200px، وقيمةpaddingإلى20px، وقيمةborderإلى5px solid blue، وقيمةbox-sizingإلىcontent-box. - اكتب قاعدة CSS تستهدف عنصر
<div>الذي يحمل الفئة<strong>border-box-div</strong>. عيّن قيمةwidthإلى300px، وقيمةheightإلى200px، وقيمةpaddingإلى20px، وقيمةborderإلى5px solid red، وقيمةbox-sizingإلىborder-box.
جرّب بنفسك
<html>
<head>
<title>Box Sizing</title>
<style>
/* Write CSS rules here */
</style>
</head>
<body>
<div class="content-box-div">This is a div with content-box.</div>
<div class="border-box-div">This is a div with border-box.</div>
</body>
</html>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Styling with CSS
4أساسيات النصوص
لون النصعائلة الخطحجم الخطسمك الخطمحاذاة النصزخرفة النصتحدي المراجعة رقم 1تحدي المراجعة رقم 27نموذج الصندوق - الجزء الأول
ما هو نموذج الصندوق؟المسافات الداخلية (Padding)الهوامش (Margins)الحدود (Borders)العرض والارتفاعتحدي المراجعة8نموذج الصندوق (Box Model) - الجزء الثاني
تحجيم الصندوق (Box Sizing)حواف العناصر (Border Radius)التدفق الزائد (Overflow)ظل الصندوق (Box Shadow)تحدي المراجعةتدرّب بنفسك: Playground لـ Web