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