Cara Bekerja dengan CSSOM di Python

Cara Bekerja dengan CSSOM di Python

Aspose.HTML FOSS untuk Python mengimplementasikan model objek CSS: stylesheet di-parse menjadi objek aturan hidup, dilampirkan ke dokumen, dan diselesaikan melalui kaskade nyata. Panduan ini menata sebuah elemen dan membaca hasil yang dihitung, menggunakan pip untuk instalasi.

Panduan Langkah-demi-Langkah

Langkah 1: Instal Paket

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

Langkah 2: Impor Kelas yang Diperlukan

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

Langkah 3: Bangun Elemen yang Diberi Gaya

Buat sebuah dokumen dan sebuah elemen dengan kelas dan id — keduanya akan berpartisipasi dalam pencocokan selector:

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

Langkah 4: Mengurai dan Menempelkan Stylesheet

replace_sync() mengurai teks stylesheet; attach_style_sheet() mendaftarkannya ke dokumen:

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

Langkah 5: Membaca Gaya yang Dihitung

Selector ID (spesifisitas 1,0,0) mengungguli selector kelas (0,1,0), jadi biru menang:

style = el.get_computed_style()
print(style.get_property_value("color"))

Masalah Umum dan Solusinya

Nilai yang dihitung mengabaikan stylesheet saya. Sheet harus dilampirkan melalui Document.attach_style_sheet() before get_computed_style() disebut.

Gaya inline kalah terhadap aturan stylesheet. Aturan penulis yang ditandai !important mengungguli deklarasi inline yang tidak penting; periksa prioritas dengan get_property_priority().

Dua aturan dengan spesifisitas yang sama menghasilkan pemenang yang mengejutkan. Aturan yang lebih akhir menang dalam ikatan spesifisitas yang sama — urutan aturan di dalam sheet penting.

Pertanyaan yang Sering Diajukan

Bagaimana cara saya mengatur gaya inline secara programatis?

Melalui deklarasi style elemen: tetapkan ke sebuah variabel dan panggil set_property() padanya.

Objek apa yang dikembalikan oleh get_computed_style?

Sebuah ComputedStyleDeclaration; baca nilai dengan get_property_value().

Apakah aturan media, keyframes, dan font-face dimodelkan?

Ya — lembar yang diurai berisi aturan yang diketik termasuk CSSMediaRule, CSSKeyframesRule, dan CSSFontFaceRule dalam sebuah CSSRuleList.

Lihat Juga

 Bahasa Indonesia