Hogyan dolgozzunk a CSSOM-mal a Python-ban
Aspose.HTML FOSS a Python számára megvalósítja a CSS objektummodellt: a stíluslapok élő szabályobjektumokká kerülnek, csatolódnak a dokumentumokhoz, és egy valódi kaszkádon keresztül oldódnak fel. Ez az útmutató egy elemet stílusoz, és kiolvassa a kiszámított eredményt, a pip használatával a telepítéshez.
Lépésről lépésre útmutató
1. lépés: A csomag telepítése
git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .2. lépés: A szükséges osztályok importálása
from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheet3. lépés: Stílusos elem létrehozása
Hozzon létre egy dokumentumot és egy elemet egy osztállyal és egy azonosítóval — mindkettő részt vesz a választóillesztésben:
doc = Document()
el = doc.create_element("div")
el.set_attribute("class", "foo")
el.set_attribute("id", "bar")
doc.append_child(el)4. lépés: Stíluslap elemzése és csatolása
replace_sync() elemzi a stíluslap szövegét; attach_style_sheet() regisztrálja azt a dokumentummal:
sheet = CSSStyleSheet()
sheet.replace_sync(".foo { color: red } #bar { color: blue }")
doc.attach_style_sheet(sheet)5. lépés: Számított stílus kiolvasása
Az ID választó (specifikusság 1,0,0) felülmúlja az osztályválasztót (0,1,0), így a kék nyer:
style = el.get_computed_style()
print(style.get_property_value("color"))Gyakori problémák és megoldások
A számított érték figyelmen kívül hagyja a stíluslapomat. A lapot a következő módon kell csatolni Document.attach_style_sheet() before get_computed_style() hívják.
Egy beágyazott stílus veszíti el a versenyt egy stíluslap szabályával szemben. Szerzői szabályok megjelölve !important felülmúlják a nem fontos beágyazott deklarációkat; ellenőrizze a prioritásokat a get_property_priority().
Két azonos specifikusságú szabály meglepő győztest eredményez. A későbbi szabályok nyernek az egyenlő specifikusságú döntéseknél — a szabályok sorrendje a lapon belül számít.
Gyakran Ismételt Kérdések
Hogyan állíthatom be a beágyazott stílusokat programozott módon?
Az elem style deklarációján keresztül: rendeld változóhoz, majd hívd meg rá a set_property() függvényt.
Milyen objektumot ad vissza a get_computed_style?
Egy ComputedStyleDeclaration; az értékeket a get_property_value() segítségével olvashatod.
A média, keyframe és font-face szabályok modellezve vannak?
Igen — a feldolgozott táblázatok típusos szabályokat tartalmaznak, beleértve a CSSMediaRule, CSSKeyframesRule és CSSFontFaceRule elemeket egy CSSRuleList-ban.