Hogyan dolgozzunk a CSSOM-mal a Python-ban

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 CSSStyleSheet

3. 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.

Lásd még:

 Magyar