การนำ ::shadow และ /deep/ ออกใน Chrome 63

ตั้งแต่ Chrome เวอร์ชัน 63 เป็นต้นไป คุณจะใช้ตัวเลือกที่เจาะเงา ::shadow และ /deep/ เพื่อจัดสไตล์เนื้อหาภายในรูทเงาไม่ได้

  • ตัวคอมบิเนเตอร์ /deep/ จะทําหน้าที่เป็นตัวเลือกรายการที่สืบทอด x-foo /deep/ div จะทำงานเหมือนกับ x-foo div
  • องค์ประกอบจำลอง ::shadow จะไม่จับคู่กับองค์ประกอบใดๆ

ผลการตัดสินให้นำออก

เราได้เลิกใช้งาน ::shadow และ /deep/ ใน Chrome เวอร์ชัน 45 ซึ่งผู้เข้าร่วมทุกคนในการประชุม Web Components เดือนเมษายน 2015 ได้ตัดสินใจเลือกชื่อนี้

ข้อกังวลหลักเกี่ยวกับตัวเลือกการเจาะเงาคือละเมิดการรวมและสร้างสถานการณ์ที่คอมโพเนนต์ไม่สามารถเปลี่ยนแปลงการใช้งานภายในได้อีกต่อไป

กำลังพัฒนาข้อกำหนดชิ้นส่วนเงา CSS เพื่อเป็นทางเลือกแทนตัวเลือกการเจาะเงา ส่วนเงาจะช่วยให้ผู้เขียนคอมโพเนนต์แสดงองค์ประกอบที่มีชื่อในลักษณะที่ยังคงการรวมไว้ และยังคงอนุญาตให้ผู้เขียนหน้าเว็บจัดสไตล์พร็อพเพอร์ตี้หลายรายการพร้อมกันได้

ฉันควรทำอย่างไรหากเว็บไซต์ใช้ ::shadow และ /deep/

ตัวเลือก ::shadow และ /deep/ จะมีผลกับคอมโพเนนต์ Shadow DOM v0 รุ่นเดิมเท่านั้น หากใช้ Shadow DOM v1 คุณไม่จําเป็นต้องเปลี่ยนแปลงอะไรในเว็บไซต์

คุณสามารถใช้ Chrome Canary เพื่อยืนยันว่าเว็บไซต์ของคุณไม่มีปัญหากับการเปลี่ยนแปลงใหม่เหล่านี้ หากพบปัญหา ให้ลองนำการใช้ ::shadow และ /deep/ ออก หากนําการใช้ตัวเลือกเหล่านี้ออกได้ยากเกินไป ให้ลองเปลี่ยนจาก Shadow DOM เนทีฟไปใช้ DOM polyfill แบบ Shady คุณควรทำการเปลี่ยนแปลงนี้เฉพาะในกรณีที่เว็บไซต์ใช้ Shadow DOM เวอร์ชัน 0 ของเว็บเบราว์เซอร์

ข้อมูลเพิ่มเติม

Intent to Remove | Chromestatus Tracker | ข้อบกพร่องของ Chromium