ฉันสามารถใช้กลไกตัวเลือกเช่นเสียงดังฉ่าเพื่อเปรียบเทียบตัวเลือก CSS ได้หรือไม่

นี่คือปัญหาของฉัน: ฉันกำลังเขียนปลั๊กอิน WordPress ที่ช่วยให้ผู้เขียน CSS มือใหม่เห็นว่า css นำไปใช้กับธีมของพวกเขาแบบเรียลไทม์ได้อย่างไร มันมีคุณสมบัติที่ดีมากมาย ยกเว้นคุณสมบัติหนึ่งซึ่งค่อนข้างสำคัญในใจของฉัน

ฉันต้องการอนุญาตให้พวกเขาคลิกองค์ประกอบ ดูเส้นทางตัวเลือกแบบเต็มไปยังองค์ประกอบนั้น (ส่วนนั้นเสร็จแล้ว) จากนั้นแสดงให้พวกเขาเห็นว่าสไตล์ใดในสไตล์ชีตที่ใช้กับองค์ประกอบนั้น

ฉันมีเส้นทางตัวเลือกแบบเต็มไปยังองค์ประกอบ (เช่น html body div#page div#post-18.post h2.posttitle) และฉันได้แยกวิเคราะห์สไตล์ชีตเป็นตัวเลือกแต่ละตัว - แต่ฉันไม่สามารถหาวิธีใดได้ เปรียบเทียบทั้งสอง แนวคิดบางอย่างที่ฉันมี:

  1. ใช้ jQuery และเรียกใช้ตัวเลือกทุกตัว (ในสไตล์ชีท) เพื่อดูว่ามันส่งคืนอะไร ฉันไม่ได้คลั่งไคล้สิ่งนี้เพราะมันดูเหมือนว่าจะต้องใช้ประสิทธิภาพอย่างมากในการตรวจสอบตัวเลือก (อาจมีนับพัน) กับ DOM เต็มรูปแบบ ยิ่งไปกว่านั้น ฉันยังต้องเปรียบเทียบวัตถุ jQuery เพื่อดูว่าพวกมันชี้ไปที่สิ่งเดียวกันหรือไม่ และจากสิ่งที่ฉันได้อ่านเกี่ยวกับการเปรียบเทียบวัตถุ ฉันไม่แน่ใจว่าจะเป็นการดีหรือไม่ สวนสาธารณะ.

  2. เขียนฟังก์ชันการเปรียบเทียบง่ายๆ ของตัวเอง และเปรียบเทียบเส้นทางของตัวเลือกแบบเต็มกับตัวเลือก CSS ฉันค่อนข้างพอใจกับสิ่งนี้ จนกระทั่งฉันเริ่มคิดถึงตัวเลือกขั้นสูงต่างๆ - : > เป็นต้น

  3. ใช้ sizzle (หรือคล้ายกัน) หรือใช้ sizzle ของ jQuery เพื่อเปรียบเทียบตัวเลือก พวกเขากำลังเรียกใช้ตัวเลือกเหล่านี้กับ DOM ดังนั้นแน่นอนว่าพวกเขามีความสามารถในการเปรียบเทียบสตริงตัวเลือกหรือไม่ อย่างใด?

ผมติดอยู่. ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก


person Peter    schedule 29.10.2010    source แหล่งที่มา


คำตอบ (1)


การตรวจสอบความเท่าเทียมกันในโครงสร้างที่ซับซ้อนนั้น (เช่น CSS) นั้นยากมาก (เช่น คุณไม่สามารถระบุสิ่งนี้ได้ด้วยการทดสอบชุดผลลัพธ์ที่เท่ากัน เนื่องจากอาจมีพฤติกรรมแตกต่างไปจากเดิมอย่างสิ้นเชิงภายใต้สถานการณ์อื่น ๆ ) คุณอาจสามารถเข้าใจสิ่งนี้ได้โดยใช้ API เฉพาะเบราว์เซอร์ หากมีอยู่ใน JavaScript (เช่น Firebug แสดงสไตล์ชีตที่ส่งผลต่อองค์ประกอบที่เลือก) นอกเหนือจากนั้น แนวทางแรกของคุณคือ AFAIK เดียวที่เป็นไปได้

person jwueller    schedule 29.10.2010