Πώς να εργαστείτε με το 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.