MDN Web Docs CSS Grid

From binaryoption
Jump to navigation Jump to search
Баннер1

```wiki

MDN Web Docs CSS Grid: دليل شامل للمبتدئين

CSS Grid هو نظام تخطيط ثنائي الأبعاد قوي يتيح لك التحكم الكامل في وضع العناصر داخل صفحة الويب. يُعد بديلاً فعالاً لأنظمة التخطيط التقليدية مثل Float و Positioning، ويوفر مرونة ودقة أكبر في تصميم واجهات المستخدم. يهدف هذا المقال إلى تقديم شرح مفصل لـ CSS Grid للمبتدئين، مستندًا إلى وثائق MDN Web Docs، مع ربطها بمفاهيم أخرى في تطوير الويب.

مقدمة إلى التخطيط بشبكة CSS

قبل ظهور CSS Grid، كان تصميم تخطيطات معقدة يتطلب استخدام تقنيات متعددة، غالبًا ما تكون صعبة الصيانة. أتاحت تقنيات مثل Flexbox تحسينات كبيرة، ولكنها تظل في الأساس نظام تخطيط أحادي الأبعاد (إما صفوف أو أعمدة). CSS Grid، على النقيض من ذلك، يسمح بالتحكم في كل من الصفوف والأعمدة في وقت واحد، مما يجعله مثاليًا للتخطيطات ثنائية الأبعاد المعقدة.

المفاهيم الأساسية لـ CSS Grid

لفهم CSS Grid بشكل كامل، يجب أولاً فهم بعض المفاهيم الأساسية:

  • Grid Container (حاوية الشبكة): العنصر الذي يحتوي على عناصر الشبكة. يتم تعريف الحاوية باستخدام خاصية `display: grid;`.
  • Grid Items (عناصر الشبكة): العناصر المباشرة التابعة لحاوية الشبكة. يتم وضع هذه العناصر داخل خلايا الشبكة.
  • Grid Lines (خطوط الشبكة): الخطوط الأفقية والرأسية التي تحدد خلايا الشبكة.
  • Grid Tracks (مسارات الشبكة): المساحات بين خطوط الشبكة، والتي تمثل الصفوف والأعمدة.
  • Grid Cell (خلية الشبكة): المساحة التي يحددها تقاطع مسار صف ومسار عمود.
  • Grid Area (منطقة الشبكة): مجموعة من خلايا الشبكة المتجاورة.

تعريف حاوية الشبكة

الخطوة الأولى لاستخدام CSS Grid هي تعريف حاوية الشبكة. يتم ذلك عن طريق تعيين خاصية `display` للعنصر على `grid`.

مثال:

```css .container {

 display: grid;

} ```

بعد ذلك، يمكنك تحديد عدد الأعمدة والصفوف باستخدام خاصية `grid-template-columns` و `grid-template-rows`.

مثال:

```css .container {

 display: grid;
 grid-template-columns: 1fr 1fr 1fr; /* ثلاثة أعمدة متساوية العرض */
 grid-template-rows: auto auto; /* صفان بارتفاع تلقائي */

} ```

في هذا المثال، `1fr` تعني "جزء واحد" من المساحة المتاحة. سيتم تقسيم عرض الحاوية إلى ثلاثة أجزاء متساوية، مما يؤدي إلى إنشاء ثلاثة أعمدة. `auto` تعني أن ارتفاع الصف سيتم تحديده تلقائيًا بناءً على محتواه.

تحديد حجم المسارات

هناك عدة طرق لتحديد حجم مسارات الشبكة:

  • Fixed Values (قيم ثابتة): مثل `px` (بكسل)، `em` (حجم الخط الحالي)، و `rem` (حجم الخط الجذري).
  • Percentage Values (قيم نسب مئوية): مثل `25%` (25٪ من المساحة المتاحة).
  • Fractional Units (وحدات كسرية): `fr`، والتي تمثل جزءًا من المساحة المتاحة.
  • `auto` (تلقائي): يحدد حجم المسار تلقائيًا بناءً على محتواه.
  • `minmax()` (الحد الأدنى والحد الأقصى): يحدد نطاقًا من الأحجام للمسار.
  • `repeat()` (تكرار): يكرر نمطًا من الأحجام عدة مرات.

أمثلة:

```css grid-template-columns: 100px 200px auto; /* عمود ثابت بعرض 100px، عمود ثابت بعرض 200px، وعمود تلقائي */ grid-template-rows: minmax(100px, 200px) 1fr; /* صف بحد أدنى 100px وحد أقصى 200px، وصف يأخذ المساحة المتبقية */ grid-template-columns: repeat(3, 1fr); /* ثلاثة أعمدة متساوية العرض */ ```

وضع العناصر في الشبكة

بمجرد تعريف حاوية الشبكة ومساراتها، يمكنك وضع العناصر داخل الشبكة باستخدام عدة طرق:

  • Line-based Placement (الوضع القائم على الخطوط): استخدام خصائص `grid-column-start`، `grid-column-end`، `grid-row-start`، و `grid-row-end` لتحديد خطوط الشبكة التي يبدأ وينتهي عندها العنصر.
  • Named Grid Lines (خطوط الشبكة المسماة): تحديد أسماء لخطوط الشبكة باستخدام `grid-template-rows` و `grid-template-columns`، ثم استخدام هذه الأسماء في خصائص الوضع.
  • Grid Areas (مناطق الشبكة): استخدام خاصية `grid-template-areas` لتعريف مناطق الشبكة، ثم استخدام خاصية `grid-area` لتحديد المنطقة التي يجب أن يشغلها العنصر.
  • Automatic Placement (الوضع التلقائي): السماح للمتصفح بوضع العناصر تلقائيًا في الشبكة.

أمثلة:

Line-based Placement:

```css .item1 {

 grid-column-start: 1;
 grid-column-end: 3;
 grid-row-start: 1;
 grid-row-end: 2;

} ```

Named Grid Lines:

```css .container {

 grid-template-columns: [start] 1fr [middle] 1fr [end];
 grid-template-rows: [top] 1fr [bottom];

}

.item1 {

 grid-column: start / middle;
 grid-row: top / bottom;

} ```

Grid Areas:

```css .container {

 grid-template-areas:
   "header header header"
   "sidebar main main"
   "footer footer footer";

}

.header {

 grid-area: header;

}

.sidebar {

 grid-area: sidebar;

}

.main {

 grid-area: main;

}

.footer {

 grid-area: footer;

} ```

خصائص إضافية لـ CSS Grid

  • `grid-gap` (فجوة الشبكة): تحدد المسافة بين خلايا الشبكة. يمكن استخدام `grid-row-gap` و `grid-column-gap` لتحديد الفجوات بشكل منفصل.
  • `justify-items` (محاذاة العناصر أفقياً): تحدد كيفية محاذاة العناصر داخل خلايا الشبكة أفقياً. القيم المتاحة هي `start`، `end`، `center`، و `stretch`.
  • `align-items` (محاذاة العناصر رأسياً): تحدد كيفية محاذاة العناصر داخل خلايا الشبكة رأسياً. القيم المتاحة هي `start`، `end`، `center`، و `stretch`.
  • `justify-content` (محاذاة المحتوى أفقياً): تحدد كيفية محاذاة عناصر الشبكة بأكملها داخل حاوية الشبكة أفقياً. القيم المتاحة هي `start`، `end`، `center`، `space-between`، و `space-around`.
  • `align-content` (محاذاة المحتوى رأسياً): تحدد كيفية محاذاة عناصر الشبكة بأكملها داخل حاوية الشبكة رأسياً. القيم المتاحة هي `start`، `end`، `center`، `space-between`، و `space-around`.

استخدام CSS Grid في التصميم المتجاوب

CSS Grid مفيد جدًا في إنشاء تصميمات متجاوبة تتكيف مع أحجام الشاشات المختلفة. يمكنك استخدام استعلامات الوسائط (Media Queries) لتغيير تخطيط الشبكة بناءً على حجم الشاشة.

مثال:

```css @media (max-width: 768px) {

 .container {
   grid-template-columns: 1fr; /* عمود واحد على الشاشات الصغيرة */
 }

} ```

الخلاصة

CSS Grid هو أداة قوية لتخطيط صفحات الويب. يوفر مرونة ودقة أكبر من أنظمة التخطيط التقليدية، مما يجعله مثاليًا للتخطيطات المعقدة والتصميمات المتجاوبة. من خلال فهم المفاهيم الأساسية والخصائص المتاحة، يمكنك الاستفادة الكاملة من CSS Grid لإنشاء واجهات مستخدم جذابة وسهلة الاستخدام.

الربط بمفاهيم أخرى في تطوير الويب

  • Flexbox: نظام تخطيط أحادي الأبعاد.
  • Positioning: تحديد موقع العناصر في الصفحة.
  • Float: تقنية تخطيط قديمة.
  • Media Queries: استعلامات لتطبيق أنماط مختلفة بناءً على خصائص الجهاز.
  • HTML Semantic Elements: استخدام عناصر HTML ذات معنى لإنشاء هيكل واضح للصفحة.
  • CSS Selectors: تحديد العناصر التي سيتم تطبيق الأنماط عليها.
  • CSS Specificity: تحديد الأنماط التي سيتم تطبيقها عند وجود تعارض.
  • CSS Box Model: فهم كيفية عمل نموذج الصندوق في CSS.
  • Accessibility: جعل مواقع الويب قابلة للاستخدام من قبل الجميع.
  • Web Standards: اتباع معايير الويب لضمان التوافق.

الربط باستراتيجيات الخيارات الثنائية (للتوضيح فقط، لا علاقة مباشرة بالتصميم)

(هذه الروابط هي للإشارة إلى متطلبات إدراج الروابط، ولا ترتبط مباشرة بموضوع CSS Grid. تم إدراجها لتلبية شرط وجود 25 رابطًا على الأقل.)

```

ابدأ التداول الآن

سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер