Hoe te Werken met de CSSOM in Python

Hoe te Werken met de CSSOM in Python

Aspose.HTML FOSS voor Python implementeert het CSS objectmodel: stylesheets worden geparseerd tot live regelobjecten, gekoppeld aan documenten, en opgelost via een echte cascade. Deze gids stylet een element en leest het berekende resultaat, met pip voor installatie.

Stapsgewijze handleiding

Stap 1: Installeer het pakket

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

Stap 2: Importeer vereiste klassen

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

Stap 3: Bouw een gestyleerd element

Maak een document en een element met een klasse en een id — beide zullen deelnemen aan selectormatching:

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

Stap 4: Parse en koppel een stylesheet

replace_sync() parseert stylesheet-tekst; attach_style_sheet() registreert deze bij het document:

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

Stap 5: Lees de berekende stijl

De ID-selector (specificiteit 1,0,0) heeft een hogere prioriteit dan de class-selector (0,1,0), dus blauw wint:

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

Veelvoorkomende problemen en oplossingen

De berekende waarde negeert mijn stylesheet. Het blad moet worden gekoppeld via Document.attach_style_sheet() before get_computed_style() wordt genoemd.

Een inline-stijl verliest van een stylesheet-regel. Auteurregels gemarkeerd !important staan hoger dan niet-belangrijke inline-declaraties; inspecteer prioriteiten met get_property_priority().

Twee regels met dezelfde specificiteit geven een verrassende winnaar. Latere regels winnen bij gelijk-specificiteit — de volgorde van regels binnen het blad is van belang.

Veelgestelde vragen

Hoe stel ik inline-stijlen programmatisch in?

Via de style-declaratie van het element: wijs deze toe aan een variabele en roep set_property() erop aan.

Welk object retourneert get_computed_style?

Een ComputedStyleDeclaration; lees waarden met get_property_value().

Worden media-, keyframes- en font-face-regels gemodelleerd?

Ja — geparseerde bladen bevatten getypte regels inclusief CSSMediaRule, CSSKeyframesRule en CSSFontFaceRule in een CSSRuleList.

Zie ook

 Nederlands