::shadow en /deep/ verwijderen in Chrome 63

Vanaf Chrome 63 kunt u de schaduwdoordringende selectors ::shadow en /deep/ niet gebruiken om inhoud binnen een schaduwwortel te stylen.

  • De /deep/ combinator zal fungeren als een afstammelingselector. x-foo /deep/ div zal werken als x-foo div .
  • Het ::shadow pseudo-element komt met geen enkel element overeen.

Het besluit om te verwijderen

De ::shadow en /deep/ zijn verouderd in Chrome versie 45. Dit werd besloten door alle deelnemers aan de Web Components meetup van april 2015 .

Het voornaamste probleem met schaduwdoordringende selectors is dat ze de inkapseling schenden en situaties creëren waarin een component zijn interne implementatie niet langer kan veranderen.

De CSS Shadow Parts- specificatie wordt geavanceerd als alternatief voor schaduwdoorborende selectors. Met Schaduwdelen kan een componentauteur benoemde elementen blootleggen op een manier die de inkapseling behoudt en pagina-auteurs toch de mogelijkheid biedt om meerdere eigenschappen tegelijk op te maken.

Wat moet ik doen als mijn site ::shadow en /deep/ gebruikt?

De ::shadow en /deep/ selectors hebben alleen invloed op oudere Shadow DOM v0-componenten. Als u Shadow DOM v1 gebruikt, hoeft u niets op uw site te wijzigen.

U kunt Chrome Canary gebruiken om te verifiëren dat uw site niet voldoet aan deze nieuwe wijzigingen. Als u problemen opmerkt, probeer dan elk gebruik van ::shadow en /deep/ te verwijderen. Als het te moeilijk is om het gebruik van deze selectors te verwijderen, overweeg dan om van native schaduw-DOM over te schakelen naar de schaduwrijke DOM-polyfill. U hoeft deze wijziging alleen door te voeren als uw site afhankelijk is van native shadow DOM v0.

Meer informatie

Intentie om te verwijderen | Chromestatustracker | Chroombug