العناصر الزائفة في CSS
الفئة الزائفة تغيّر المظهر عندما تتغير الحالة (:hover، :focus). العنصر الزائف خطوة أبعد: يمكنك تنسيق جزء من النص، أو صنع صندوق صغير قبل أو بعد المحتوى الحقيقي — بـ نقطتين مزدوجتين (::) ودون وسوم إضافية في HTML.
ما معنى العنصر الزائف؟
العنصر الزائف كلمة تُلصق بالمحدد بـ ::. يستهدف شيئاً ليس عنصراً كاملاً في الوسم: الحرف الأول، السطر الأول، أو صندوقاً مولَّداً قبل/بعد المحتوى. لـ ::before و::after تحتاج عادةً إلى content ليظهر شيء.
أربعة عناصر زائفة شائعة
ابدأ بهذه. الشكل القديم بنقطة مفردة (:before) ما زال يعمل في متصفحات كثيرة، لكن اكتب الإملاء الحديث بالنقطتين المزدوجتين.
📊 عناصر زائفة يومية في CSS
| العنصر الزائف | ماذا ينسّق | مثال |
|---|---|---|
::before |
صندوق قبل محتوى العنصر | p::before |
::after |
صندوق بعد محتوى العنصر | a::after |
::first-letter |
الحرف الأول من كتلة نص | p::first-letter |
::first-line |
السطر الأول من كتلة نص | p::first-line |
قبل المحتوى — ::before وcontent
::before يصنع صندوقاً افتراضياً قبل النص الحقيقي. تضع content تقريباً دائماً — سلسلة، أو "" لصندوق فارغ زخرفي.
قبل — علامة اقتباس افتتاحية
css.quote::before {
content: "“";
color: #0f766e;
font-size: 1.5rem;
margin-right: 0.25rem;
}
لا تنسَ content
بدون content كثير من قواعد ::before / ::after لا تُظهر شيئاً. لشريط لوني أو أيقونة خلفية يكفي content: "".
بعد المحتوى — ::after
::after نفس الفكرة بعد المحتوى — لوحدة أو شارة أو لاحقة صغيرة.
بعد — تلميح رابط خارجي
cssa.external::after {
content: " ↗";
font-size: 0.85em;
}
لا تخفِ المعنى الضروري هنا
قارئات الشاشة وبعض الأدوات تتعامل مع المحتوى المولَّد بشكل غير متسق. لا تضع التعليمات المهمة فقط داخل ::before أو ::after؛ اترك النص الحقيقي في HTML.
الحرف الأول — ::first-letter
::first-letter ينسّق الحرف الأول من نص كتلة — مظهر الحرف الكبير الكلاسيكي في بداية فقرة.
الحرف الأول — حرف افتتاحي أكبر
css.lead::first-letter {
font-size: 2.5rem;
font-weight: 700;
color: #0f766e;
float: left;
line-height: 1;
margin-right: 0.15em;
}
السطر الأول — ::first-line
::first-line ينسّق فقط أول سطر مرئي — ليس «الجملة الأولى»، بل السطر الذي يصنعه المتصفح عند التفاف النص.
السطر الأول — أثقل قليلاً
css.lead::first-line {
font-weight: 600;
color: #334155;
}
صندوق فارغ زخرفي
أحياناً تريد شريطاً لونياً فقط بلا نص. يكفي content: "".
before فارغ — شريط زخرفي
css.card::before {
content: "";
display: block;
height: 4px;
background: #0f766e;
margin-bottom: 0.75rem;
}
عادات عملية
- عنصر زائف = نقطتان مزدوجتان (
::before)؛ فئة زائفة = مفردتان (:hover) - ضع
contentعلى::before/::afterإن أردت شيئاً مرئياً - أبقِ النص الضروري في HTML لا في المحتوى المولَّد فقط
::first-letterو::first-lineيعملان على كتل نصية- فضّل
::الحديث حتى لو عمل:beforeالقديم
جرّبها بنفسك
- صفحة قصيرة بفقرة
.quoteوفقرة.leadورابطa.externalو.cardبنص. - أضف
.quote::before { content: "“"; color: #0f766e; }وشاهد علامة الاقتباس. - على رابط class
externalضعa.external::after { content: " ↗"; }. - كبّر
.lead::first-letterبلون فيروزي؛ واضبط.lead::first-lineبـfont-weight: 600. - أضف
.card::before { content: ""; display: block; height: 4px; background: #0f766e; }لشريط علوي.
أخطاء شائعة
- كتابة
:beforeوأنت تقصد حالة مثل:hover— الحالة نقطة مفردة؛ الصندوق المولَّد مزدوجة - نسيان
contentفلا يظهر::before/::after - وضع النسخة الوحيدة من تحذير داخل
::after - توقع معجزة من
::first-letterعلى عنصر فارغ أو صورة فقط - خلط
::first-lineبـ «الجملة الأولى» — التفاف المتصفح يحدد السطر
ملخص
- العنصر الزائف بـ
::ينسّق جزءاً أو صندوقاً مولَّداً ::before/::afterيحتاجانcontent(سلسلة أو"")::first-letterو::first-lineيأخذان بداية كتلة النص- المعنى الحيوي يبقى في HTML
- نقطة مفردة = فئة زائفة؛ مزدوجة = عنصر زائف
- تدرب باقتباس ولاحقة رابط وفقرة lead
🧠 اختبر معرفتك
اختبر معرفتك
تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع
📝 التعليمات
- اقرأ كل سؤال بعناية
- اختر أفضل إجابة لكل سؤال
- يمكنك إعادة الاختبار عدة مرات كما تريد
- سيتم عرض تقدمك في الأعلى