الفصل الرابع التنسيق العام (Layout Styling) في CSS
إليك كورس كامل عن التنسيق العام (Layout Styling) في CSS:
1. مقدمة عن التنسيق العام
- التنسيق العام في CSS يتعامل مع تنظيم وتوزيع العناصر على الصفحة باستخدام أساليب مثل: التخطيط باستخدام الصناديق (box model)، التخطيط باستخدام الشبكات (grid system)، التخطيط باستخدام المرونة (flexbox)، وغير ذلك.
2. نموذج الصندوق (Box Model)
- نموذج الصندوق هو الأساس لفهم التنسيقات في CSS. يتكون كل عنصر HTML من أربعة أجزاء رئيسية:
- المحتوى (Content): حيث يتم عرض النص أو الصور.
- الحشوة (Padding): المسافة بين المحتوى وحدود العنصر.
- الحدود (Border): محيط العنصر.
- الهامش (Margin): المسافة بين العنصر والعناصر المحيطة به.
أ. الحسابات في نموذج الصندوق
- عرض العنصر (Width) و ارتفاعه (Height) يشملان فقط المحتوى.
- يمكن إضافة الحشوة (Padding) و الحدود (Borders) خارج هذا المحتوى.
- مثال:
3. **التخطيط باستخدام Flexbox
- Flexbox هو نموذج مرن لتخطيط العناصر، يتيح لك ترتيب وتوزيع العناصر بشكل ديناميكي.
- المبدأ الأساسي: يتحكم في ترتيب وحجم العناصر داخل الحاوية باستخدام خصائص مرنة.
أ. إعداد الحاوية (Flex Container)
- قم بتحديد حاوية مرنة باستخدام
display: flex;
. - مثال:
ب. محاذاة العناصر داخل الحاوية
- يمكنك التحكم في توزيع العناصر داخل الحاوية باستخدام خصائص مثل
justify-content
وalign-items
وalign-self
.- محاذاة العناصر أفقيًا باستخدام
justify-content
:- القيم:
flex-start
,flex-end
,center
,space-between
,space-around
. - مثال:
- القيم:
- محاذاة العناصر عموديًا باستخدام
align-items
:- القيم:
flex-start
,flex-end
,center
,stretch
,baseline
. - مثال:
- القيم:
- محاذاة العناصر أفقيًا باستخدام
ج. الترتيب باستخدام order
- يمكنك تغيير ترتيب العناصر باستخدام خاصية
order
. - مثال:
د. حجم العناصر باستخدام flex-grow
, flex-shrink
, flex-basis
flex-grow
: يحدد قدرة العنصر على التوسع داخل الحاوية.flex-shrink
: يحدد قدرة العنصر على التقلص داخل الحاوية.flex-basis
: يحدد الحجم الأساسي للعنصر قبل أي توسع أو تقليص.- مثال:
4. **التخطيط باستخدام CSS Grid
- CSS Grid هو نظام شبكي يمكن من خلاله تقسيم الصفحة إلى صفوف وأعمدة.
أ. إعداد الحاوية (Grid Container)
- قم بتحديد حاوية شبكية باستخدام
display: grid;
. - مثال:
ب. تعريف الصفوف والأعمدة (Grid Lines)
- يمكنك تحديد عدد الأعمدة والصفوف باستخدام
grid-template-columns
وgrid-template-rows
. - مثال:
ج. تحديد العنصر داخل الشبكة (Grid Item)
- لتحديد مكان العنصر داخل الشبكة، استخدم
grid-column
وgrid-row
. - مثال:
5. **التخطيط باستخدام Positioning
- Positioning في CSS يسمح لك بتحديد موضع العنصر بشكل دقيق داخل الصفحة باستخدام خصائص مثل
static
,relative
,absolute
, وfixed
.
أ. الخاصية position: static
- القيمة الافتراضية لجميع العناصر.
- مثال:
ب. الخاصية position: relative
- يمكن تحريك العنصر بشكل نسبي بناءً على موقعه الافتراضي.
- مثال:
ج. الخاصية position: absolute
- العنصر يتم وضعه بشكل مطلق داخل أقرب عنصر نسبي.
- مثال:
د. الخاصية position: fixed
- العنصر يظل ثابتًا في مكانه حتى عند التمرير.
- مثال:
6. **التخطيط باستخدام **Float and Clear
- Float كان يستخدم بشكل شائع لترتيب العناصر في الأعمدة، لكنه لا يُستخدم بكثرة الآن لصالح Flexbox و Grid.
- مثال:
- Clear يستخدم لإزالة التأثيرات الناتجة عن
float
. - مثال:
7. **التخطيط باستخدام **Viewport and Media Queries
- Media Queries تُستخدم لتغيير التخطيط بناءً على خصائص جهاز العرض مثل العرض والارتفاع.
أ. استخدام Media Queries
- مثال:
8. أفضل الممارسات لتنسيق الصفحة
- استخدم Flexbox أو Grid: لتحقيق تخطيط مرن.
- تجنب استخدام
float
إلا إذا كان ضروريًا. - اجعل الصفحة متجاوبة باستخدام Media Queries لضمان التوافق مع جميع الأجهزة.
9. مشروع تطبيقي: تصميم صفحة باستخدام Flexbox و Grid
- قم بإنشاء صفحة تحتوي على رأس (Header)، محتوى رئيسي (Main Content)، شريط جانبي (Sidebar)، و تذييل (Footer) باستخدام Flexbox و Grid.
10. ملخص الدرس
- تعلمنا كيفية تنسيق العناصر باستخدام Flexbox، Grid، و Positioning.
- فهمنا كيفية العمل مع نموذج الصندوق (Box Model) لتحديد المسافات والأبعاد.
- تعرفنا على كيفية استخدام Media Queries لإنشاء تصميمات متجاوبة.