CSSالموسوعةدروس CSS

29- فئات الحالة الزائفة (Pseudo-classes) في CSS

فئات الحالة الزائفة هي أدوات تستخدم لتحديد حالة خاصة لعناصر الـ HTML.

على سبيل المثال، يمكن استخدامها لتحقيق الآتي:

  • تنسيق عنصر عند تحريك مؤشر الماوس فوقه
  • تنسيق الروابط التي تمت زيارتها بشكل مختلف عن الروابط التي لم تتم زيارتها
  • تنسيق عنصر عند حصوله على التركيز (الاستفاد)

قواعد البناء – Syntax

قواعد بناء فئات الحالة الزائفة (Pseudo-classes syntax):

selector:pseudo-class {
  property: value;
}

فئات الحالة الزائفة للروابط (Anchor Pseudo-classes)

تُمكن فئات الحالة الزائفة للروابط من عرض الروابط بطرق مختلفة.

فيما يلي بعض الأمثلة:

  • :link: تحدد هذه الفئة جميع الروابط غير المزورة.
  • :visited: تحدد هذه الفئة جميع الروابط التي تم زيارتها مسبقًا.
  • :active: تحدد هذه الفئة الرابط الذي يتم النقر عليه حاليًا.
  • :hover: تحدد هذه الفئة الرابط الذي يتم تحريك مؤشر الماوس فوقه.
/* unvisited link */
a:link {
  color: #FF0000;
}

/* visited link */
a:visited {
  color: #00FF00;
}

/* mouse over link */
a:hover {
  color: #FF00FF;
}

/* selected link */
a:active {
  color: #0000FF;
}

ملاحظة: يجب أن تأتي الفئة “:hover” بعد الفئتين “:link” و “:visited” في تعريف CSS لكي تعمل بشكل فعّال. وبالمثل، يجب أن تأتي الفئة “:active” بعد الفئة “:hover” لتعمل بشكل صحيح. أسماء فئات الحالة الزائفة غير حساسة لحالة الأحرف (يمكن كتابتها بأحرف كبيرة أو صغيرة).


فئات الحالة الزائفة (Pseudo-classes) والـفئات الخاصة بـ HTML (HTML Classes)

يمكن دمج فئات الحالة الزائفة مع الفئات الخاصة بـ HTML لتحقيق المزيد من التحكم بالتنسيق.

على سبيل المثال:

في حالة تحريك مؤشر الماوس فوق الرابط بالمثال التالي، سيتغير لونه:

a.highlight:hover {
  color: #ff0000;
}

تحريك مؤشر الماوس فوق عنصر <div>

مثال على استخدام الفئة الزائفة “:hover” على عنصر <div>:

div:hover {
  background-color: blue;
}

تحويم على صندوق نص لإظهار نص مساعدة (Tooltip)

عند تحريك مؤشر الماوس فوق عنصر <div>, سيظهر عنصر <p> يعمل كـ “نص مساعدة” (Tooltip).

p {
  display: none;
  background-color: yellow;
  padding: 20px;
}

div:hover p {
  display: block;
}

CSS – فئة الحالة الزائفة :first-child

تُستخدم فئة الحالة الزائفة “:first-child” لتحديد عنصر معيّن يكون الابن الأول لعنصر آخر.

على سبيل المثال: تحديد أول عنصر <p>

في المثال التالي، يطابق المُحدّد أي عنصر <p> يعتبر الابن الأول لأي عنصر:

p:first-child {
  color: blue;
}

تحديد أول عنصر <i> داخل جميع عناصر <p>

في المثال التالي، يطابق المُحدّد أول عنصر <i> الموجود ضمن كل عنصر <p>.

p i:first-child {
  color: blue;
}

تحديد جميع عناصر <i> داخل جميع عناصر <p> التي تعتبر الابن الأول لعنصر آخر

في المثال التالي، يطابق المُحدّد كافة عناصر <i> الموجودة داخل عناصر <p> التي تعتبر الابن الأول لأي عنصر آخر.

p:first-child i {
  color: blue;
}

CSS – فئة الحالة الزائفة :lang

تتيح لك فئة الحالة الزائفة “:lang” تعريف قواعد خاصة للغات مختلفة.

في المثال التالي، تحدد “:lang” علامات الاقتباس لعناصر <q> التي تحتوي على الخاصية lang=”no”:

<html>
<head>
<style>
q:lang(no) {
  quotes: "~" "~";
}
</style>
</head>
<body>

<p>Some text <q lang="no">A quote in a paragraph</q> Some text.</p>

</body>
</html>

جميع فئات الحالة الزائفة في CSS

فئة الحالة الزائفةمثالوصف المثال
:activea:activeيحدد الرابط النشط
:checkedinput:checkedيحدد كل عنصر <input> محدد
:disabledinput:disabledيحدد كل عنصر <input> معطل
:emptyp:emptyيحدد كل عنصر <p> لا يحتوي على عناصر فرعية
:enabledinput:enabledيحدد كل عنصر <input> مفعّل
:first-childp:first-childيحدد جميع عناصر <p> التي هي الابن الأول للعنصر الأب
:first-of-typep:first-of-typeيحدد جميع عناصر <p> التي هي أول عنصر <p> للعنصر الأب
:focusinput:focusيحدد عنصر <input> الذي عليه التركيز
:hovera:hoverيحدد الروابط عند تحريك الماوس فوقها
:in-rangeinput:in-rangeيحدد عناصر <input> بقيمة ضمن مدى محدد
:invalidinput:invalidيحدد جميع عناصر <input> بقيمة غير صالحة
:lang(language)p:lang(it)يحدد كل عنصر <p> بقيمة سمة “lang” تبدأ بـ “it”
:last-childp:last-childيحدد جميع عناصر <p> التي هي الابن الأخير للعنصر الأب
:last-of-typep:last-of-typeيحدد جميع عناصر <p> التي هي آخر عنصر <p> للعنصر الأب
:linka:linkيحدد جميع الروابط غير المزورة
:not(selector):not(p)يحدد كل عنصر ليس عنصر <p>
:nth-child(n)p:nth-child(2)يحدد كل عنصر <p> هو الابن الثاني للعنصر الأب
:nth-last-child(n)p:nth-last-child(2)يحدد كل عنصر <p> هو الابن الثاني للعنصر الأب، مع العد من الابن الأخير
:nth-last-of-type(n)p:nth-last-of-type(2)يحدد كل عنصر <p> هو ثاني عنصر <p> للعنصر الأب، مع العد من الابن الأخير
:nth-of-type(n)p:nth-of-type(2)يحدد كل عنصر <p> هو ثاني عنصر <p> للعنصر الأب
:only-of-typep:only-of-typeيحدد كل عنصر <p> هو العنصر الوحيد من نوع <p> للعنصر الأب
:only-childp:only-childيحدد كل عنصر <p> هو الابن الوحيد للعنصر الأب
:optionalinput:optionalيحدد عناصر <input> بدون سمة “required”
:out-of-rangeinput:out-of-rangeيحدد عناصر <input> بقيمة خارج مدى محدد
:read-onlyinput:read-onlyيحدد عناصر <input> مع سمة “readonly” محددة
:read-writeinput:read-writeيحدد عناصر <input> بدون سمة “readonly”
:requiredinput:requiredيحدد عناصر <input> مع سمة “required” محددة
:rootrootيحدد عنصر الجذر للمستند
:target#news:targetيحدد عنصر #news النشط الحالي (تم النقر على عنوان URL يحتوي على اسم الرابط)
:validinput:validيحدد جميع عناصر <input> بقيمة صالحة
:visiteda:visitedيحدد جميع الروابط التي تمت زيارتها

جميع عناصر الحالة الزائفة في CSS

عنصر الحالة الزائفةمثالوصف المثال
::afterp::afterإدراج محتوى بعد كل عنصر <p>
::beforep::beforeإدراج محتوى قبل كل عنصر <p>
::first-letterp::first-letterتحديد الحرف الأول لكل عنصر <p>
::first-linep::first-lineتحديد السطر الأول لكل عنصر <p>
::marker::markerتحديد العلامات الخاصة بعناصر القائمة ( نقط أو رقم أو غيره)
::selectionp::selectionتحديد الجزء المحدد من قبل المستخدم داخل عنصر <p>

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى