Πώς να εργαστείτε με το CSSOM στο Python

Πώς να εργαστείτε με το CSSOM στο Python

Aspose.HTML FOSS για Python υλοποιεί το CSS object model: τα stylesheets μετατρέπονται σε live rule objects, συνδέονται με documents και επιλύονται μέσω μιας πραγματικής cascade. Αυτός ο οδηγός μορφοποιεί ένα στοιχείο και διαβάζει το computed result, χρησιμοποιώντας pip για την εγκατάσταση.

Οδηγός βήμα προς βήμα

Βήμα 1: Εγκατάσταση του Package

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

Βήμα 2: Εισαγωγή των απαιτούμενων Classes

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

Βήμα 3: Δημιουργία ενός Styled Element

Δημιουργήστε ένα έγγραφο και ένα στοιχείο με μια κλάση και ένα αναγνωριστικό — και τα δύο θα συμμετέχουν στην αντιστοίχιση επιλογέα:

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 (ειδικότητα 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.

Δείτε επίσης

 Ελληνικά