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 | مُطابق السمة مع العوامل |