CSS סלקטורים

CSS סלקטורים

מנוע הסלקטורים מפרש את טקסט הסלקטור של CSS לצורה מובנית ומעריך אותו כנגד עצי DOM. הוא תומך גם בשאילתות ישירות וגם בהתאמת כללי הקסקדה.


הרצת סלקטורים

select() מעריך סלקטור נגד עץ ומחזיר התאמות; element_matches() בודק אלמנט יחיד. שניהם מקבלים תחביר סלקטור סטנדרטי — סוג, מחלקה, id, תכונה, וסלקטורים של פסודו-מחלקה, כולל שילובים מורכבים וקומפאונדיים.

מבני סלקטורים מפוענחים

parse() מייצר SelectorList של ComplexSelector ו-CompoundSelector רשומות שנבנו מ-TypeSelector, ClassSelector, IDSelector, AttributeSelector (עם AttributeOperator), UniversalSelector, ו-Combinator חלקים.

פסודו-מחלקות

מחלקות מזוייף פונקציונליות מתוּארות במפורש: IsPseudoClass, WherePseudoClass, HasPseudoClass, ComplexNotPseudoClass, וגרסאות מבניות nth-child דרך NthFilteredChildPseudoClass עם NthArgument.

Specificity

specificity() מחשבת את ה-tuple הסטנדרטי בעל שלושת הרכיבים עבור בורר, ו-max_specificity() מצמצמת רשימה; match() מחברת את הפענוח וההערכה יחד. אלה הם אותם הערכים שהקאסקייד משתמש בו, ולכן תוצאות השאילתה והסגנונות המחושבים תמיד תואמים.


טיפים ושיטות עבודה מומלצות

  • השתמש ב-element_matches() בתוך מסננים במקום להריץ מחדש את select() לכל אלמנט
  • פענח פעם אחת והשתמש מחדש ב-SelectorList כאשר אותו בורר רץ על פני עצים רבים
  • כאשר כלל מאבד את הקאסקייד באופן בלתי צפוי, השווה ישירות ערכי 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מתאם תכונה עם אופרטורים

ראה גם

 עברית