CSS-Tricks: A Complete Guide to Grid
CSS-Tricks: دليل كامل إلى الشبكة (Grid)
مقدمة
تعتبر الشبكة (Grid) من أقوى وأكثر أدوات التخطيط مرونة في CSS، وقد أحدثت ثورة في طريقة تصميم صفحات الويب. تسمح لك الشبكة بإنشاء تخطيطات معقدة ومرنة بسهولة وفعالية، متجاوزةً القيود التي كانت موجودة في طرق التخطيط التقليدية مثل العوامات (Floats) أو الجداول (Tables). هذا المقال هو دليل شامل للمبتدئين لفهم واستخدام CSS Grid، مستوحى من موارد CSS-Tricks الشهيرة. سنغطي الأساسيات، المفاهيم المتقدمة، وأمثلة عملية لمساعدتك على إتقان هذه التقنية القوية.
ما هي CSS Grid؟
CSS Grid (أو شبكة CSS) هي نظام تخطيط ثنائي الأبعاد، مما يعني أنها تتعامل مع الصفوف والأعمدة في نفس الوقت. على عكس التخطيطات أحادية الأبعاد مثل Flexbox (التي تركز على صف واحد أو عمود واحد)، تسمح لك الشبكة بالتحكم الكامل في موضع وحجم العناصر في كلا البعدين.
المفاهيم الأساسية
- الحاوية الشبكية (Grid Container): هي العنصر الذي يحتوي على عناصر الشبكة. يتم تعريفها باستخدام `display: grid;`.
- عناصر الشبكة (Grid Items): هي العناصر الفرعية المباشرة للحاوية الشبكية. يتم وضعها في خلايا الشبكة.
- الصفوف والأعمدة (Rows and Columns): تشكل الشبكة إطاراً من الصفوف والأعمدة، حيث يتم وضع عناصر الشبكة.
- الخلايا (Cells): هي المساحات الفردية التي تتشكل من تقاطع الصفوف والأعمدة.
- المسارات (Gutters): هي المسافات بين الصفوف والأعمدة، وتُعرف أيضاً باسم الفجوات (Gaps).
إنشاء شبكة بسيطة
لإنشاء شبكة بسيطة، تحتاج إلى تعريف الحاوية الشبكية وتحديد عدد الصفوف والأعمدة. إليك مثال:
```css .container {
display: grid; grid-template-columns: 1fr 1fr 1fr; /* ثلاث أعمدة متساوية العرض */ grid-template-rows: 100px 100px; /* صفان بارتفاع 100 بكسل */ gap: 10px; /* فجوة 10 بكسل بين الصفوف والأعمدة */
}
.item {
background-color: #f0f0f0; padding: 20px; border: 1px solid #ccc;
} ```
في هذا المثال:
- `display: grid;` يحول العنصر ذو الفئة `container` إلى حاوية شبكية.
- `grid-template-columns: 1fr 1fr 1fr;` يحدد ثلاثة أعمدة. `1fr` تعني "جزء واحد من المساحة المتاحة". لذلك، سيتم تقسيم المساحة المتاحة بالتساوي بين الأعمدة الثلاثة.
- `grid-template-rows: 100px 100px;` يحدد صفين، كل منهما بارتفاع 100 بكسل.
- `gap: 10px;` يضيف فجوة 10 بكسل بين كل من الصفوف والأعمدة.
- `.item` هو نمط لعناصر الشبكة.
وحدات قياس الأعمدة والصفوف
هناك عدة طرق لتحديد عرض الأعمدة وارتفاع الصفوف:
- البكسل (px): تحديد حجم ثابت.
- النسبة المئوية (%): تحديد حجم نسبي بالنسبة للحاوية الأصل.
- الوحدة المرنة (fr): توزيع المساحة المتاحة بالتساوي. `1fr` يمثل جزء واحد من المساحة المتاحة، `2fr` يمثل جزأين، وهكذا.
- الحد الأدنى والحد الأقصى للمحتوى (minmax()): تحديد نطاق للحجم. على سبيل المثال، `minmax(100px, 200px)` سيجعل العمود أو الصف لا يقل عن 100 بكسل ولا يزيد عن 200 بكسل.
- التلقائي (auto): يسمح للمحتوى بتحديد الحجم.
التحكم في موضع العناصر
بمجرد إنشاء الشبكة، يمكنك التحكم في موضع عناصر الشبكة باستخدام خصائص `grid-column-start`, `grid-column-end`, `grid-row-start`, و `grid-row-end`.
- `grid-column-start: 1;` يحدد أن العنصر يبدأ في العمود الأول.
- `grid-column-end: 3;` يحدد أن العنصر ينتهي قبل العمود الثالث (أي يمتد عبر العمودين الأول والثاني).
- `grid-row-start: 2;` يحدد أن العنصر يبدأ في الصف الثاني.
- `grid-row-end: 4;` يحدد أن العنصر ينتهي قبل الصف الرابع (أي يمتد عبر الصفين الثاني والثالث).
يمكنك أيضاً استخدام الاختصارات `grid-column` و `grid-row` لتحديد البداية والنهاية في سطر واحد:
- `grid-column: 1 / 3;` يكافئ `grid-column-start: 1; grid-column-end: 3;`.
- `grid-row: 2 / 4;` يكافئ `grid-row-start: 2; grid-row-end: 4;`.
الأسماء للمسارات (Named Grid Lines)
يمكنك إعطاء أسماء للصفوف والأعمدة لتسهيل التحكم في موضع العناصر.
```css .container {
display: grid; grid-template-columns: [start] 1fr [middle] 1fr [end]; grid-template-rows: [top] 100px [bottom];
}
.item1 {
grid-column: start / middle; grid-row: top / bottom;
} ```
في هذا المثال، تم تسمية الأعمدة `start` و `middle` و `end`، وتم تسمية الصفوف `top` و `bottom`. يمكنك بعد ذلك استخدام هذه الأسماء لتحديد موضع العناصر.
الخصائص المتقدمة
- `grid-auto-rows` و `grid-auto-columns`:** تحدد حجم الصفوف والأعمدة التي يتم إنشاؤها تلقائياً إذا لم يتم تحديدها في `grid-template-rows` و `grid-template-columns`.
- `grid-template-areas`:** تسمح لك بتعريف تخطيط الشبكة باستخدام أسماء المناطق. هذا يجعل الكود أكثر قابلية للقراءة والصيانة.
- `justify-items`, `align-items`, `justify-content`, `align-content`:** تتحكم في محاذاة عناصر الشبكة داخل خلاياها وفي الحاوية الشبكية ككل.
- `repeat()`:** تسمح لك بتكرار تعريفات الصفوف والأعمدة بشكل مختصر. على سبيل المثال، `grid-template-columns: repeat(3, 1fr);` يكافئ `grid-template-columns: 1fr 1fr 1fr;`.
مثال متقدم: تخطيط صفحة ويب
لنقم بإنشاء تخطيط بسيط لصفحة ويب باستخدام الشبكة:
```html
<header>رأس الصفحة</header> <nav>القائمة الرئيسية</nav> <main>المحتوى الرئيسي</main> <aside>الشريط الجانبي</aside> <footer>تذييل الصفحة</footer>
```
```css .container {
display: grid; grid-template-columns: 200px 1fr; grid-template-rows: auto 1fr auto; grid-template-areas: "header header" "nav main" "footer footer"; gap: 10px; height: 100vh; /* اجعل الحاوية الشبكية تأخذ كامل ارتفاع الشاشة */
}
header {
grid-area: header; background-color: #333; color: white; padding: 20px;
}
nav {
grid-area: nav; background-color: #444; color: white; padding: 20px;
}
main {
grid-area: main; background-color: #f0f0f0; padding: 20px;
}
aside {
grid-area: aside; /* غير مستخدم في هذا المثال، ولكن يمكن إضافته لاحقاً */
}
footer {
grid-area: footer; background-color: #333; color: white; padding: 20px;
} ```
في هذا المثال، تم استخدام `grid-template-areas` لتعريف تخطيط الشبكة بشكل مرئي. كل اسم منطقة يمثل جزءاً من التخطيط.
التوافق مع المتصفحات
تدعم معظم المتصفحات الحديثة CSS Grid بشكل كامل. ومع ذلك، قد تحتاج إلى استخدام بادئات المتصفحات (Vendor Prefixes) للوصول إلى أوسع نطاق من المتصفحات القديمة. يمكنك استخدام أدوات مثل Autoprefixer (https://autoprefixer.github.io/) لإضافة البادئات تلقائياً.
الخلاصة
CSS Grid هي أداة قوية ومرنة لتخطيط صفحات الويب. من خلال فهم المفاهيم الأساسية والخصائص المتقدمة، يمكنك إنشاء تخطيطات معقدة ومرنة بسهولة وفعالية. تدرب على الأمثلة واستكشف المزيد من الموارد لتعميق فهمك لهذه التقنية.
روابط ذات صلة (الخيارات الثنائية، التحليل الفني، الاستراتيجيات، إلخ.)
- التحليل الفني للخيارات الثنائية
- استراتيجيات الخيارات الثنائية للمبتدئين
- تحليل حجم التداول في الخيارات الثنائية
- مؤشر المتوسط المتحرك للخيارات الثنائية
- مؤشر RSI للخيارات الثنائية
- استراتيجية الاختراق للخيارات الثنائية
- استراتيجية البين بار للخيارات الثنائية
- استراتيجية التداول العكسي للخيارات الثنائية
- تداول الخيارات الثنائية على الأخبار
- إدارة المخاطر في الخيارات الثنائية
- تداول الخيارات الثنائية باستخدام أنماط الشموع
- مؤشر MACD للخيارات الثنائية
- الشموع اليابانية في الخيارات الثنائية
- استراتيجية مارتينجال للخيارات الثنائية (تحذير: عالية المخاطر)
- استراتيجية فيبوناتشي للخيارات الثنائية
- تداول الخيارات الثنائية على العملات الأجنبية
- تداول الخيارات الثنائية على السلع
- تداول الخيارات الثنائية على المؤشرات
- التحليل الأساسي للخيارات الثنائية
- تداول الخيارات الثنائية في أوقات التقلب العالي
- استراتيجية التداول بناءً على مستويات الدعم والمقاومة
- تحليل الاتجاه في الخيارات الثنائية
- تداول الخيارات الثنائية باستخدام أنماط الرسوم البيانية
- تداول الخيارات الثنائية في الأسواق الصاعدة والهابطة
- تداول الخيارات الثنائية مع وسيط موثوق به
- الفرق بين الخيارات الثنائية والخيارات التقليدية
- الضرائب على أرباح الخيارات الثنائية
ابدأ التداول الآن
سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)
انضم إلى مجتمعنا
اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين