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

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

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

การตัดสินใจนำออก

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

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

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

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

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

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

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

ความตั้งใจที่จะนำออก | ตัวติดตาม Chromestatus | ข้อบกพร่อง Chromium