Nasıl CSS Seçicileri Python içinde Kullanılır
Aspose.HTML FOSS içinde Python için seçici motoru, sınıf, id, tip, öznitelik ve pseudo-sınıf seçicilerini standart özgüllük ile değerlendirir. Bu kılavuz, kurulum için pip kullanarak — select() ve element_matches()‘i güçlendiren aynı motor — kademeli olarak seçici eşleşmesini gösterir.
Adım Adım Kılavuz
Adım 1: Paketi Kurun
git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .Adım 2: Gerekli Sınıfları İçe Aktarın
from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheetAdım 3: Birden Çok Seçicinin Eşleştiği Bir Öğeyi Oluşturun
Hem sınıf hem de kimlik taşıyan bir öğe, .foo, #bar ve div seçicileri tarafından aynı anda eşleşir:
doc = Document()
el = doc.create_element("div")
el.set_attribute("class", "foo")
el.set_attribute("id", "bar")
doc.append_child(el)Adım 4: Özellik Önceliğine Bırak
Çakışan kuralları ekleyin — ID seçicisinin (1,0,0) sınıf seçicisinin (0,1,0) değerini yener:
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"))Adım 5: Satır içi bildirimle geçersiz kıl
Satır içi bildirimler (1,0,0) satır içi önceliğe sahiptir ve herhangi bir seçici önceliğine sahip yazar kurallarını yener:
inline = el.style
inline.set_property("color", "green")
print(el.get_computed_style().get_property_value("color"))Yaygın Sorunlar ve Çözümler
Doğru görününen bir seçici hiçbir şeyi eşleştirmez. Sözdizimi hataları içeren seçici metni ayrıştırılamaz — motor tahmin etmek yerine bunu raporlar; seçici dizesini kontrol edin.
:where() şu şeyden farklı davranır :is(). Bu tasarım gereği: :where() sıfır özgüllük katar, :is() argümanınınkini katıyor.
Bir tip seçici beklenmedik şekilde kaybeder. Tip seçiciler en düşük özgüllük sınıfına sahiptir (0,0,1); aynı elemandaki herhangi bir class veya id kuralı onlardan daha üstündür.
Sıkça Sorulan Sorular
Bir stil sayfası olmadan bir seçici sorgusu çalıştırabilir miyim?
Evet — select() bir seçiciyi doğrudan bir ağaç üzerinde değerlendirir ve element_matches() tek bir öğeyi test eder.
Özgüllük nasıl hesaplanır?
specificity() hem sorgular hem de kademelenme tarafından kullanılan standart (id, class, type) demetini döndürür.
Hangi pseudo-sınıflar modellenmiştir?
Yapılandırılmış formlar :is(), :where(), :has(), :not() için, karmaşık argümanlarla ve nth-child tarzı yapısal seçicilerle mevcuttur.