نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
REA

منهج React Js

دليل مرجعي شامل

كل اللغات
مدرسة البرمجة/منهج React Js/التعامل مع CSS في React Js

التعامل مع CSS في React Js

التنسيق في ريأكتشرح classNameشرح className في رياكتالفرق بين class و classNameربط CSS في Reactكورس React كامل

جدول مرجعي سريع

1

التعامل مع خصائص التنسيق CSS: السمة className بدلاً من class

وجه الاختلاففي لغة HTML التقليديةفي صياغة JSX الخاصة بريأكت
سمة التنسيق الطبقيتُكتب باستخدام الكلمة class بشكل مباشر وصريحتُكتب حتماً باستخدام السمة className لتجنب تداخل الأكواد
طبيعة التعامل مع المترجميقرأها المتصفح كخاصية نصية قياسية لبناء شجرة التنسيقاتتتحول إلى خاصية داخل كائن جافا سكريبت وتدعم الربط الديناميكي
ربط ملف CSS الخارجييتم عبر وسم link في رأس الصفحة وربط مسار الملف المباشريتم عبر أمر import البرمجي في أعلى ملف المكون مباشرة

الشرح

عندما تبدأ في تحويل قوالب التصميم إلى أكواد فعلية داخل React، ستحتاج حتماً إلى إضافة أصناف التنسيق (CSS Classes) التي قمت بكتابتها لكي يظهر الموقع بشكل أنيق ومنظم.

هنا ستواجه القاعدة الأكثر شهرة وتكراراً في عالم ريأكت، وهي منع استخدام كلمة class واستبدالها برمجياً بـ className. دعنا نفهم السبب الهندسي وراء هذا التغيير وكيفية تطبيق التنسيق بطريقة احترافية.

1. لماذا نستخدم className بدلاً من class؟

كما ناقشنا باختصار في درس القواعد الصارمة، فإن كود JSX ليس HTML حقيقياً، بل هو واجهة برمجية تتحول خلف الكواليس إلى لغة جافا سكريبت صافية. في لغة JavaScript، تعتبر كلمة class كلمة محجوزة بالنظام (Reserved Keyword)، حيث تُستخدم لبناء الكلاسات البرمجية والكائنات (Object-Oriented Programming). لذلك، لمنع حدوث تداخل أو ارتباك للمترجم البرمجي (Babel) أثناء تحويل الأكواد، قام مهندسو ريأكت بتغيير اسم السمة الخاصة بالتنسيق إلى className، وتُكتب دائماً بأسلوب السنام (CamelCase).

2. كيف نربط ملف CSS خارجياً بالمكون؟

في المواقع التقليدية، كنت تذهب لملف index.html وتكتب وسم <link> لربط التنسيقات. في ريأكت، فلسفة المكونات تعني أن كل مكون يجب أن يكون مستقلاً بذاته. لذلك، نقوم بإنشاء ملف CSS عادي بجوار ملف المكون، ثم نستدعيه مباشرة في أعلى ملف الـ JSX باستخدام أمر الاستيراد import. بمجرد عمل هذا الاستيراد، ستتعرف ريأكت على الملف وتدمج تنسيقاته تلقائياً في المشروع.

الأكواد البرمجية والتطبيق العملي

دعنا نرى كيف ننشئ ملف تنسيق مستقل وكيف نقوم باستيراده وتطبيقه داخل المكون بشكل صحيح:

Button.css

Button.css
1/* ملف CSS قياسي وطبيعي جداً */
2.main-btn {
3 background-color: #673ab7; /* اللون البنفسجي المعتمد لنوفيل */
4 color: #ffffff;
5 padding: 10px 20px;
6 border: none;
7 border-radius: 5px;
8 cursor: pointer;
9 font-size: 16px;
10}
11
12.main-btn:hover {
13 background-color: #512da8;
14}

Button.jsx

Button.jsx
1// 1. استيراد ملف التنسيق الخارجي مباشرة في أعلى الملف
2import './Button.css';
3
4function CustomButton() {
5 return (
6 // 2. تطبيق الصنف باستخدام className بدلاً من class
7 <button className="main-btn">
8 اضغط للتسجيل في الكورس
9 </button>
10 );
11}

💡 نصيحة

بما أن className هي سمة جافا سكريبت في أصلها، فهذا يعني أنه يمكنك دمجها مع الأقواس المجعدة { } لتبديل وتغيير أصناف التنسيق (Classes) ديناميكياً بناءً على حالة التطبيق!

💡 نصيحة

على سبيل المثال، إذا كان لديك زر تريد تغيير لونه إلى الأحمر فقط إذا انتهت الصلاحية، يمكنك استخدام المعامل الثلاثي الذكي داخل الـ className هكذا:

javascript
1<button className={`main-btn ${isExpired ? 'danger-bg' : 'success-bg'}`}>

نصائح احترافية

  • —لاحظ استخدامنا لعلاّمات الاقتباس المائلة (Template Literals) المدمجة مع الأقواس؛ هذه الحيلة البرمجية البسيطة تمنحك تحكماً مطلقاً في مظهر موقعك بلحظته وبناءً على البيانات الحية!

الدرس السابق

إضافة التعليقات داخل JSX

الدرس التالي

تنسيق Inline Styles في React باستخدام (Objects)

نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر