כיצד לעבוד עם CSSOM ב-Python

כיצד לעבוד עם CSSOM ב-Python

Aspose.HTML FOSS עבור Python מיישם את מודל האובייקט של CSS: גללי סגנון מתפרקים לאובייקטי כללים חיי, מצורפים למסמכים, ונפתרים דרך מסדרה אמיתית. מדריך זה מעצב אלמנט וקורא את התוצאה המחושבת, תוך שימוש ב-pip להתקנה.

מדריך שלב-אחר-שלב

שלב 1: התקנת החבילה

git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .

שלב 2: ייבוא המחלקות הדרושות

from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheet

שלב 3: בניית אלמנט מעוצב

צור מסמך ואלמנט עם מחלקה ו-id — שניהם ישתתפו בהתאמת סלקטורים:

doc = Document()
el = doc.create_element("div")
el.set_attribute("class", "foo")
el.set_attribute("id", "bar")
doc.append_child(el)

שלב 4: ניתוח והצמדה של גיליון סגנונות

replace_sync() מפרש טקסט של גיליון סגנונות; attach_style_sheet() רושם אותו במסמך:

sheet = CSSStyleSheet()
sheet.replace_sync(".foo { color: red } #bar { color: blue }")
doc.attach_style_sheet(sheet)

שלב 5: קריאת הסגנון המחושב

סלקטור ה-ID (specificity 1,0,0) מתעלה על סלקטור המחלקה (0,1,0), ולכן הכחול מנצח:

style = el.get_computed_style()
print(style.get_property_value("color"))

בעיות נפוצות ופתרונות

הערך המחושב מתעלם מגיליון הסגנונות שלי. הגיליון חייב להיות מצורף באמצעות Document.attach_style_sheet() before get_computed_style() נקרא.

סגנון פנימי מאבד לכלל מגיליון סגנונות. כללי המחבר המסומנים !important עולים על הצהרות אינליין לא חשובות; בדוק עדיפויות עם get_property_priority().

שני כללים עם אותה ספציפיות מניבים מנצח מפתיע. כללים מאוחרים מנצחים בתיקי ספציפיות שווים — סדר הכללים בתוך הגיליון חשוב.

שאלות נפוצות

איך אני מגדיר סגנונות פנימיים בתכנות?

דרך ההצהרה style של האלמנט: השמתה למשתנה וקרא ל-set_property() עליו.

איזה אובייקט מחזירה get_computed_style?

ComputedStyleDeclaration; קרא ערכים עם get_property_value().

האם כללי media, keyframes, ו-font-face מודלים?

כן — גיליונות מנותחים מכילים כללים מתויגים כולל CSSMediaRule, CSSKeyframesRule, ו-CSSFontFaceRule בCSSRuleList.

ראה גם

 עברית