Box Sizing في CSS
- الصفحة السابقة CSS @property
- الصفحة التالية Flexbox في CSS
Box Sizing في CSS
CSS box-sizing
الخاصية تسمح لنا بضم الهوامش الداخلية (الملء) والحدود في عرض العنصر الكلي والارتفاع.
إذا لم يتم تحديد خاصية CSS box-sizing
بالتأكيد، يتم حساب عرض العنصر والارتفاع بهذه الطريقة:
- العرض + الهوامش الداخلية + الحدود = العرض الفعلي للعنصر
- الارتفاع + الهوامش الداخلية + الحدود = الارتفاع الفعلي للعنصر
هذا يعني: عندما تقوم بتعيين عرض/ارتفاع العنصر، العنصر عادةً يبدو أكبر مما قمت بتعيينه (بسبب أن الهوامش والحدود قد تم إضافتها إلى العرض/الارتفاع المحدد للعنصر).
الشكل التالي يظهر عنصرين <div> لهما نفس العرض والارتفاع المحدد:
العرض 300px، الارتفاع 100px).
العرض أيضًا 300px، الارتفاع 100px).
العناصر <div> الثلاثة في النتيجة النهائية تظهر بأحجام مختلفة (بسبب أن div2 قد تم تحديد الهوامش الداخلية):
مثال
.div1 { width: 300px; height: 100px; border: 1px solid blue; } .div2 { width: 300px; height: 100px; padding: 50px; border: 1px solid red; }
box-sizing
الخاصية حل هذه المشكلة.
إذا استخدمت خاصية CSS box-sizing
box-sizing
الخاصية تسمح لنا بضم الهوامش الداخلية والحدود في عرض العنصر الكلي والارتفاع.
إذا تم تعيين الخاصية على العنصر box-sizing: border-box;
، فإن العرض والارتفاع سينتويها الهوامش الداخلية والحدود:
هذا المثال مشابه للسابق، كلا العناصر <div> قد تم تعيينها box-sizing: border-box;
:
مثال
.div1 { width: 300px; height: 100px; border: 1px solid blue; box-sizing: border-box; } .div2 { width: 300px; height: 100px; padding: 50px; border: 1px solid red; box-sizing: border-box; }
بسبب الاستخدام box-sizing: border-box;
بشكل جيد، والكثير من المطورين يأملون أن يعمل جميع العناصر على الصفحة بهذه الطريقة.
الكود التالي يمكن أن يضمن تعديل حجم جميع العناصر بهذه الطريقة المباشرة. العديد من المتصفحات قد بدأت في استخدام هذا التأثير على العديد من عناصر النماذج box-sizing: border-box;
ولكن ليس الجميع - هذا هو السبب في أن input و textarea يبدوان مختلفين عند width: 100%;
تطبيق ذلك على جميع العناصر أمر آمن ومثالي:
مثال
* { box-sizing: border-box; }
خصائص Box Sizing في CSS
خصائص | وصف |
---|---|
box-sizing | تحديد طريقة حساب عرض العنصر وارتفاعه: هل يجب أن يشمل الهوامش الداخلية (padding) والهوامش الخارجية (border)؟ |
- الصفحة السابقة CSS @property
- الصفحة التالية Flexbox في CSS