CSS المحددات

CSS محددات

محرك المحددات يحلل نص المحدد CSS إلى شكل منظم ويقيّمه مقابل أشجار DOM. يدعم كلًا من الاستعلامات المباشرة ومطابقة قواعد السلسلة.


تشغيل المحددات

select() يقيّم مُحدِّدًا مقابل شجرة ويعيد النتائج؛ element_matches() يختبر عنصرًا واحدًا. كلاهما يقبل صsyntax المحددات القياسي — محددات النوع، الفئة، المعرف، السمة، ومحددات الفئة الزائفة، بما في ذلك التركيبات المركبة والمعقدة.

هياكل المحددات المُحللة

parse() ينتج SelectorList من ComplexSelector و CompoundSelector مدخلات مبنية من TypeSelector، ClassSelector، IDSelector، AttributeSelector (مع AttributeOperator)، UniversalSelector، و Combinator أجزاء.

الفئات الزائفة

يتم نمذجة الفئات الزائفة الوظيفية بشكل صريح: IsPseudoClass، WherePseudoClass، HasPseudoClass، ComplexNotPseudoClass، ومتغيرات nth-child البنائية عبر NthFilteredChildPseudoClass مع NthArgument.

Specificity

specificity() تحسب الثلاثية القياسية المكوّنة لمحدد، وmax_specificity() تختزل قائمة؛ match() تربط بين التحليل والتقييم معًا. هذه هي نفس القيم التي يستخدمها الـ cascade، لذا فإن نتائج الاستعلام والأنماط المحسوبة تتطابق دائمًا.


نصائح وأفضل الممارسات

  • استخدم element_matches() داخل الفلاتر بدلاً من إعادة تشغيل select() لكل عنصر
  • قم بالتحليل مرة واحدة وأعد استخدام SelectorList عندما يُطبق المحدد نفسه على العديد من الأشجار
  • عند فقدان قاعدة بشكل غير متوقع للـ cascade، قارن قيم specificity() مباشرة

مشكلات شائعة

المشكلةالسببالإصلاح
المحدد لا يطابق شيئًاخطأ في بناء الجملة في نص المحددparse() يثير عبر syntax_error — تحقق من الرسالة
التعادل في التحديد المتساوي ينتج “خطأ”الاعتماد على الترتيبالقواعد اللاحقة تفوز في حالة التعادل؛ تحقق من ترتيب القواعد
الارتباك بين :is() و :where():where() يساهم بصفر من التحديداختر وفق وزن السلسلة المقصود

FAQ

كيف أختبر عنصرًا واحدًا ضد محدد؟

element_matches() — تُعيد قيمة منطقية دون مسح الشجرة.

كيف يتم حساب التحديدية؟

specificity() تُعيد مجموعة المكوّنات القياسية (id, class, type)؛ مجموعات :where() لا تُضيف شيئًا.

ما هي الفئات الزائفة المدعومة؟

الأشكال الهيكلية في API: :is()، :where()، :has()، :not() مع وسائط معقدة، ومحددات بنيوية على نمط nth-child.


API Reference ملخص

الفئة/الطريقةوصف
selectتقييم مُحدد ضد شجرة
element_matchesاختبار عنصر واحد
parseتحليل نص المُحدد إلى SelectorList
specificityاحسب مجموعة الخصوصية
HasPseudoClassمُهيكل :has() نموذج
AttributeSelectorمُطابق السمة مع العوامل

انظر أيضاً

 العربية