كيفية إنشاء أصناف (Classes) ومعرفات (ID) وأصناف زائفة (Pseudo-classes) في CSS
تُعد لغة CSS (Cascading Style Sheets) من الركائز الأساسية في تصميم وتنسيق صفحات الويب، حيث تتيح للمطورين التحكم الكامل في مظهر المحتوى وهيكله البصري. ومن بين الأدوات الأساسية التي توفرها CSS نجد الأصناف (Classes) والمعرفات (IDs) والأصناف الزائفة (Pseudo-classes)، والتي تُمثل أنظمة مرنة ومنظمة لإضفاء التنسيقات على العناصر في المستندات المكتوبة بـ HTML. يُعد الفهم الدقيق لكيفية إنشاء واستخدام هذه الآليات أمراً حاسماً لإنتاج واجهات مستخدم متناسقة وسهلة الإدارة على المدى الطويل.
في هذا المقال الموسع، سيتم تناول المفاهيم الثلاثة بشكل تفصيلي مع أمثلة عملية وتوضيحات تقنية، وذلك وفقاً لأفضل ممارسات البرمجة الحديثة ومعايير الويب.
أولاً: الأصناف (Classes) في CSS
تعريف الأصناف
الصنف في CSS هو اسم يمكن تعيينه إلى عنصر HTML أو أكثر بهدف تطبيق تنسيق معين عليه. يتم استخدام الصنف عند الحاجة لتطبيق نفس الأسلوب على عدة عناصر بشكل غير حصري، مما يجعله خياراً مرناً جداً لتكرار التنسيقات.
كيفية إنشاء صنف
يُنشأ الصنف في CSS باستخدام النقطة (.) متبوعة باسم الصنف. على سبيل المثال:
css.highlight {
background-color: yellow;
font-weight: bold;
}
ثم يمكن تطبيق هذا الصنف داخل HTML على أي عنصر كالتالي:
html<p class="highlight">هذا النص سيتم تمييزه باللون الأصفر وبخط عريض.p>
خصائص التسمية
-
يجب أن يبدأ اسم الصنف بحرف أو بشرطة سفلية (_)، ولا يمكن أن يبدأ برقم.
-
يُفضل استخدام أسماء معبرة تعكس الغرض من الصنف (مثلاً:
.btn-primary,.nav-item,.alert-danger). -
يمكن ربط عدة أصناف بعنصر واحد باستخدام مسافات بين الأسماء:
html<div class="box highlight bordered">div>
إعادة الاستخدام
الأصناف تسمح بإعادة استخدام التنسيق في عدة أماكن مما يعزز من قابلية الصيانة وسهولة تطوير الواجهات المعقدة.
ثانياً: المعرفات (IDs) في CSS
تعريف المعرف
المعرف (ID) هو اسم فريد يُعطى لعنصر HTML واحد فقط ضمن الصفحة، ويُستخدم غالباً لتطبيق تنسيق مميز عليه أو للإشارة إليه بواسطة JavaScript أو الروابط الداخلية.
كيفية إنشاء معرف
يُعرَّف معرف في CSS باستخدام الرمز # متبوعاً باسم المعرف:
css#main-title {
font-size: 32px;
color: #003366;
}
ويُطبق في HTML على الشكل التالي:
html<h1 id="main-title">عنوان الصفحة الرئيسيh1>
الفروقات الجوهرية بين الأصناف والمعرفات
| الخاصية | الأصناف (Classes) | المعرفات (IDs) |
|---|---|---|
| إمكانية التكرار | يمكن تطبيقها على عدة عناصر | يجب أن تكون فريدة |
| رمز التعريف | النقطة . |
علامة الهاش # |
| الأفضلية في CSS | أقل أولوية | أعلى أولوية |
| الاستخدام الأمثل | عند الحاجة لتنسيق مشترك | عند الحاجة لتنسيق فريد |
مشاكل شائعة مع IDs
رغم قوة المعرفات، إلا أن الإفراط في استخدامها قد يؤدي إلى مشاكل في قابلية إعادة الاستخدام وصعوبة الصيانة، خصوصاً عند دمج ملفات CSS متعددة أو التعامل مع مكتبات JavaScript مثل jQuery أو React.
ثالثاً: الأصناف الزائفة (Pseudo-classes)
تعريفها
الصنف الزائف هو حالة افتراضية أو ظرفية لعنصر HTML، يُستخدم لتطبيق تنسيق بناءً على تفاعل المستخدم أو حالة العنصر في المستند. يُكتب باستخدام النقطتين (:) متبوعاً باسم الحالة.
أمثلة شائعة
1. :hover – عند المرور بالفأرة
cssa:hover {
color: red;
text-decoration: underline;
}
2. :active – أثناء النقر على العنصر
cssbutton:active {
transform: scale(0.98);
}
3. :focus – عند التركيز على عنصر (مثلاً حقل إدخال)
cssinput:focus {
border-color: blue;
outline: none;
}
4. :first-child – أول عنصر ضمن عنصر أب
cssli:first-child {
font-weight: bold;
}
5. :last-child – آخر عنصر ضمن عنصر أب
cssli:last-child {
color: green;
}
6. :nth-child() – عنصر في موقع معين
csstr:nth-child(even) {
background-color: #f2f2f2;
}
الفرق بين الأصناف الزائفة والعناصر الزائفة
من المهم التمييز بين الأصناف الزائفة (pseudo-classes) مثل :hover والعناصر الزائفة (pseudo-elements) مثل ::before و ::after، حيث الأخيرة تُمكن من إدخال محتوى إضافي افتراضياً.
مثال على عنصر زائف:
cssp::before {
content: "☛ ";
color: gray;
}
تسلسل الأولوية (Specificity) بين الأصناف والمعرفات
تتبع CSS نظاماً لتحديد الأولوية يسمى “Specificity”، أي تحديد أي قاعدة CSS يجب أن تُطبق إذا ما وُجدت تعارضات. ويُحسب وفق قاعدة رياضية تعتمد على أنواع المحددات (Selectors):
| النوع | القيمة الرقمية |
|---|---|
| المعرف (ID) | 100 |
| الصنف أو الصنف الزائف | 10 |
| العنصر أو العنصر الزائف | 1 |
مثال توضيحي:
css#header {
color: red; /* Specificity: 100 */
}
.title {
color: blue; /* Specificity: 10 */
}
h1 {
color: green; /* Specificity: 1 */
}
إذا وُجد عنصر
، فإن اللون سيكون أحمر لأن معرف #header له أعلى أولوية.
تطبيق عملي: دمج الأصناف والمعرفات والأصناف الزائفة
لإظهار الفائدة القصوى من هذه الأدوات، يمكن دمجها كما يلي:
css.card {
border: 1px solid #ccc;
padding: 20px;
transition: box-shadow 0.3s;
}
.card:hover {
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
#featured-card {
background-color: #fafafa;
border-color: #0066cc;
}
.card .title:first-child {
font-size: 24px;
color: #333;
}
والاستخدام في HTML:
html<div id="featured-card" class="card">
<h2 class="title">مقال مميزh2>
<p>محتوى البطاقة...p>
div>
جدول توضيحي: مقارنة بين الاستخدامات المختلفة
| النوع | البادئة | القابلية لإعادة الاستخدام | التوصيف | الأولوية |
|---|---|---|---|---|
| الأصناف (Class) | . |
عالية | مرن ومشترك | متوسطة |
| المعرفات (ID) | # |
منخفضة | مميز وفريد | عالية |
| الأصناف الزائفة | : |
تلقائية من CSS | حسب التفاعل أو البنية | منخفضة إلى متوسطة |
أفضل الممارسات في استخدام الأصناف والمعرفات والأصناف الزائفة
-
استخدم الأصناف لتنظيم الواجهات التي تتكرر وتحتاج إلى تنسيق موحد.
-
احرص على تقليل استخدام المعرفات في CSS وتخصيصها للربط بالـ JavaScript أو التنقل الداخلي فقط.
-
استفد من الأصناف الزائفة لتحسين تجربة المستخدم عند التفاعل مع الصفحة دون الحاجة إلى JavaScript.
-
لا تخلط بين الأصناف والمعرفات بشكل مفرط داخل نفس العنصر، لتجنب التعارض في التنسيقات.
-
اعتمد على أسماء واضحة ودالة عند إنشاء أصنافك مثل:
.button-danger,.text-muted,.form-control.
الخلاصة
إن فهم كيفية إنشاء وتوظيف الأصناف والمعرفات والأصناف الزائفة في CSS يُعد من المهارات الجوهرية لكل مطور واجهات أمامية يسعى إلى بناء مواقع احترافية ومرنة وسهلة الصيانة. فبينما تُوفر الأصناف مرونة وإمكانية إعادة استخدام عالية، تمنح المعرفات قدرة على التحديد الدقيق والفوري، وتُكمل الأصناف الزائفة هذه المنظومة من خلال توفير تنسيقات تعتمد على التفاعل أو الحالة البنيوية للعناصر. إن استخدام هذه الآليات وفق منهجية مدروسة يضمن إنتاج واجهات جذابة وسليمة من الناحية التقنية، تسهم في تحسين تجربة المستخدم ورفع جودة تصميم المواقع.
المراجع:

