Box Model في CSS: شرح كامل ومفصل
المقدمة
في CSS، كل عنصر في صفحة الويب يُعتبر صندوقًا (Box) يتألف من أربع طبقات: المحتوى (Content)، الحشوة (Padding)، الحدود (Border)، والهامش (Margin). يُعرف هذا التكوين باسم Box Model، وهو مفهوم أساسي لفهم كيفية عمل التصميم وتحديد المسافات بين العناصر.
في هذا الدرس، سنشرح بالتفصيل Box Model ونوضح كيف تؤثر خاصية Overflow على طريقة عرض الصناديق. سنقدم أيضًا أمثلة عملية لتوضيح المفاهيم بشكل أفضل.
ما هو Box Model في CSS؟
يحدد Box Model كيف يتم حساب الحجم الكلي لأي عنصر في الصفحة، حيث يتضمن:
- Content (المحتوى): النص أو الصورة داخل العنصر.
- Padding (الحشوة): المسافة بين المحتوى وحدود العنصر.
- Border (الحد): الإطار المحيط بالعنصر.
- Margin (الهامش): المسافة بين العنصر والعناصر المجاورة له.
التركيب العام لــ Box Model:
+----------------------------+
| Margin (الهامش) |
+----------------------------+
| Border (الحد) |
+----------------------------+
| Padding (الحشوة) |
+----------------------------+
| Content (المحتوى) |
+----------------------------+
شرح مكونات Box Model بالتفصيل
1. Content (المحتوى)
- هو النص، الصورة، أو المحتوى الداخلي للعنصر.
- يمكن التحكم في حجم المحتوى باستخدام خاصيات مثل
width
وheight
.
مثال:
div {
width: 300px;
height: 200px;
background-color: lightblue;
}
شرح:
- في هذا المثال، سيتم عرض المحتوى داخل مربع بمساحة 300 × 200 بكسل.
2. Padding (الحشوة)
- تحدد المسافة بين المحتوى وحدود العنصر.
- تزيد الحشوة من الحجم الداخلي للعنصر.
- يمكن التحكم في الحشوة باستخدام:
padding-top
padding-right
padding-bottom
padding-left
مثال:
div {
width: 300px;
height: 200px;
padding: 20px;
background-color: lightgreen;
}
شرح:
- يتم إضافة 20 بكسل حشوة من جميع الجوانب، مما يجعل المحتوى يبدو بعيدًا عن حدود العنصر.
3. Border (الحدود)
- تمثل الإطار المحيط بالعنصر.
- يمكن التحكم في سمك ولون ونمط الحدود باستخدام خاصيات مثل:
border-width
: سمك الحدود.border-style
: نمط الحدود (مثلsolid
،dashed
).border-color
: لون الحدود.
مثال:
div {
width: 300px;
height: 200px;
padding: 20px;
border: 5px solid black;
background-color: lightgray;
}
شرح:
- يتم تطبيق حد أسود صلب بسمك 5 بكسل.
4. Margin (الهامش)
- هو المسافة الخارجية بين العنصر والعناصر الأخرى المحيطة به.
- الهامش لا يؤثر على حجم الصندوق الداخلي للعنصر.
- يمكن التحكم فيه باستخدام:
margin-top
margin-right
margin-bottom
margin-left
مثال:
div {
width: 300px;
height: 200px;
padding: 20px;
border: 5px solid black;
margin: 30px;
background-color: lightcoral;
}
شرح:
- سيتم إضافة هامش 30 بكسل من جميع الجوانب.
فهم تأثير Overflow على الصناديق
تُستخدم خاصية overflow
للتحكم في كيفية عرض المحتوى عندما يتجاوز حجم المحتوى المساحة المتاحة داخل العنصر.
قيم overflow الشائعة:
- visible (افتراضي):
- يظهر المحتوى الذي يتجاوز العنصر بالكامل.
- hidden:
- يتم إخفاء المحتوى الزائد الذي يتجاوز حجم العنصر.
- scroll:
- يظهر شريط تمرير دائمًا، حتى إذا كان المحتوى يناسب العنصر.
- auto:
- يظهر شريط التمرير فقط إذا تجاوز المحتوى حجم العنصر.
مثال على overflow:
div {
width: 300px;
height: 100px;
border: 2px solid black;
overflow: auto;
}
HTML:
<div>
هذا النص طويل جدًا ولا يتناسب مع حجم العنصر. ستظهر أشرطة التمرير تلقائيًا إذا كان المحتوى يتجاوز حجم العنصر.
</div>
شرح:
- إذا كان النص أطول من المساحة المتاحة، سيظهر شريط تمرير تلقائي.
تطبيق عملي: Box Model في CSS
HTML:
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<title>Box Model في CSS</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="box">
<p>هذا نص داخل صندوق يستخدم Box Model.</p>
</div>
</body>
</html>
CSS (styles.css):
/* تنسيق الصندوق */
.box {
width: 300px;
height: 150px;
padding: 20px;
border: 5px solid black;
margin: 30px auto;
background-color: lightblue;
overflow: hidden;
}
/* تنسيق النص داخل الصندوق */
.box p {
margin: 0;
font-size: 18px;
line-height: 1.5;
}
كيفية حساب الحجم الكلي للصندوق في Box Model
المعادلة:
الحجم الكلي = العرض + الحشوة + الحدود + الهامش
مثال على الحساب:
- العرض (width): 300px
- الحشوة (padding): 20px (من كل جانب)
- الحدود (border): 5px (من كل جانب)
- الهامش (margin): 30px (من كل جانب)
الحجم الكلي للعرض:
300 + (20 * 2) + (5 * 2) = 350px
خاتمة
في هذا الدرس، تعلمنا مفهوم Box Model في CSS بالتفصيل وفهمنا كيف يتم حساب الحجم الكلي لأي عنصر باستخدام المحتوى، الحشوة، الحدود، والهامش. كما تعرفنا على خاصية Overflow التي تتحكم في كيفية عرض المحتوى الزائد داخل الصناديق.
يساعد فهم Box Model في تحسين تنسيق الصفحات وضبط المسافات بين العناصر، مما يجعل التصميم أكثر احترافية ومنظمًا.
أسئلة شائعة (FAQ)
1. ما الفرق بين padding وmargin؟
- Padding: المسافة بين المحتوى والحدود الداخلية.
- Margin: المسافة بين العنصر والعناصر المحيطة به.
2. هل يؤثر margin على حجم العنصر؟
- لا، الهامش لا يؤثر على الحجم الداخلي للعنصر.
3. متى أستخدم overflow: hidden؟
- عندما تريد إخفاء المحتوى الزائد عن مساحة العنصر.
هل أنت مستعد للانتقال إلى الدرس التالي؟ 😊