Πώς να εργαστείτε με Επιλογείς CSS στο Python

Πώς να εργαστείτε με Επιλογείς CSS στο Python

Η μηχανή επιλεκτών στο Aspose.HTML FOSS για Python αξιολογεί επιλεκτές κλάσης, id, τύπου, χαρακτηριστικού και ψευδο-κλάσης με προδιαγραφές ειδικότητας. Αυτός ο οδηγός δείχνει την αντιστοίχιση επιλεκτών μέσω της αλυσίδας — η ίδια μηχανή που τροφοδοτεί το select() και το element_matches() — χρησιμοποιώντας pip για εγκατάσταση.

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

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

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

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

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

Βήμα 3: Δημιουργήστε ένα στοιχείο που ταιριάζει με πολλαπλούς επιλεκτές

Ένα στοιχείο που διαθέτει τόσο κλάση όσο και id ταιριάζει ταυτόχρονα με τους επιλογείς .foo, #bar και div:

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

Βήμα 4: Αφήστε την ειδικότητα να αποφασίσει

Επισυνάψτε ανταγωνιστικούς κανόνες — ο επιλογέας ID με (1,0,0) υπερισχύει του επιλογέα κλάσης με (0,1,0):

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

Βήμα 5: Παράκαμψη με ενσωματωμένη δήλωση

Οι ενσωματωμένες δηλώσεις έχουν προτεραιότητα (1,0,0) σε επίπεδο inline και υπερισχύουν των κανόνων του δημιουργού ανεξαρτήτως ειδικότητας επιλογέα:

inline = el.style
inline.set_property("color", "green")
print(el.get_computed_style().get_property_value("color"))

Κοινά προβλήματα και διορθώσεις

Ένας επιλογέας που φαίνεται σωστός δεν ταιριάζει με τίποτα. Το κείμενο του επιλογέα με συντακτικά σφάλματα αποτυγχάνει στην ανάλυση — η μηχανή το αναφέρει αντί να μαντέψει· ελέγξτε τη συμβολοσειρά του επιλογέα.

:where() συμπεριφέρεται διαφορετικά από :is(). Αυτό είναι σχεδιασμένο έτσι: :where() συνεισφέρει μηδενική ειδικότητα, :is() συνεισφέρει του ορίσματος.

Ένας επιλεκτής τύπου χάνει απροσδόκητα. Οι επιλεκτές τύπου έχουν την χαμηλότερη κατηγορία ειδικότητας (0,0,1); οποιοσδήποτε κανόνας κλάσης ή id στο ίδιο στοιχείο τους υπερισχύει.

Συχνές Ερωτήσεις

Μπορώ να εκτελέσω ένα ερώτημα επιλογέα χωρίς φύλλο στυλ;

Ναι — το select() αξιολογεί έναν επιλογέα απέναντι σε ένα δέντρο άμεσα, και το element_matches() δοκιμάζει ένα μοναδικό στοιχείο.

Πώς υπολογίζεται η εξειδίκευση;

Το specificity() επιστρέφει την τυπική πλειάδα (id, class, type) που χρησιμοποιείται τόσο από τα ερωτήματα όσο και από την αλυσίδα.

Ποιες ψευδο-κλάσεις μοντελοποιούνται;

Δομημένες φόρμες υπάρχουν για :is(), :where(), :has(), :not() με σύνθετα επιχειρήματα και επιλογείς δομής τύπου nth-child.

Δείτε επίσης

 Ελληνικά