J'ai lu ce sélecteur et obtenu des réponses contradictoires.
Dans: Que signifient/deep/et :: shadow dans un sélecteur CSS?
Nous voyons:
Comme le souligne Joel H. dans les commentaires, Chrome a depuis déprécié le/deep/combinator, et il donne une erreur de syntaxe dans IE.
Dans: https://github.com/Microsoft/vscode/issues/7002
Nous voyons:
/ deep/n'existe plus, donc je ne pense pas que nous devrions le soutenir. >>> est la nouvelle version, qui devrait probablement être prise en charge
Cependant, dans le Angular 2 docs: https://angular.io/docs/ts/latest/guide/component-styles.html
Nous voyons:
Le sélecteur/deep/possède également l'alias >>>. Nous pouvons utiliser l'un ou l'autre des deux de manière interchangeable.
Évidemment, il serait sage de faire confiance aux Angular 2 docs, mais j'hésite un peu à cause de toutes ces informations contradictoires.
En fait, dans la dernière version de Microsoft Visual Studio Code, LES DEUX /deep/
et >>>
crée des erreurs, bien qu'elles fonctionnent toutes les deux malgré les erreurs.
Ma question est double:
Est/profond/ici pour rester? Avons-nous une source, un devis ou quoi que ce soit d'une spécification indiquant qu'il sera adopté? Ou s'il est officiellement obsolète?
Pouvons-nous supprimer cette erreur dans Visual Studio Code sans désactiver complètement la vérification de la syntaxe?
Est/profond/ici pour rester? Avons-nous une source, un devis ou quoi que ce soit d'une spécification indiquant qu'il sera adopté? Ou s'il est officiellement obsolète?
Le /deep/
la syntaxe est obsolète, vue pour la dernière fois dans css-scoping en 2014 , et son remplacement >>>
a été déconseillé il y a environ six mois en Chrome 45.
Le concept entier du combinateur descendant perçant les ombres est prévu pour être entièrement supprimé du DOM Shadow . Les implémentations peuvent soit le supprimer complètement, soit l'aliaser au combinateur descendant normal (ce qui, selon la façon dont le Shadow DOM sera implémenté à l'avenir, peut ou non avoir du sens).
Pouvons-nous supprimer cette erreur dans Visual Studio Code sans désactiver complètement la vérification de la syntaxe?
Malheureusement non.
Angular permet les deux dans l'encapsulation de vues émulées à des fins de compatibilité, mais les auteurs sont fortement encouragés à utiliser >>>
aller de l'avant, puisque /deep/
est techniquement invalide maintenant, et donc non pris en charge dans l'encapsulation de vue native.
Selon la documentation de Google, tous les principaux navigateurs vont déprécier toutes les fonctionnalités de cette fonctionnalité. Par conséquent, le combinateur descendant perçant l'ombre est obsolète et le support est supprimé des principaux navigateurs et outils.
https://angular.io/guide/component-styles
Ce qui peut être utilisé qui est plus officiel et non déprécié est :: Host () et :: Host-context
De plus, selon google :: ng-deep ne sera pas déprécié et continuera d'être une option viable. donc l'utilisation de :: ng-deep sera préférable.
Le/deep/combinator a également les alias >>> et :: ng-deep.
Utilisez/deep /, >>> et :: ng-deep uniquement avec l'encapsulation de la vue émulée. L'émulation est l'encapsulation de vue par défaut et la plus couramment utilisée. Pour plus d'informations, consultez la section Encapsulation de la vue Contrôle. Le combinateur descendant qui perce les ombres est obsolète et le support est supprimé des principaux navigateurs et outils. En tant que tel, nous prévoyons de supprimer le support dans Angular (pour les 3 de/deep /, >>> et :: ng-deep). Jusque-là :: ng-deep devrait être préféré pour un une compatibilité plus large avec les outils.