ตั้งแต่ 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