Dans le développement de vue, nous devons référencer des sous-composants, y compris les composants ui (element, iview). Mais après avoir ajouté scoped dans le composant parent, l'écriture du style du composant enfant dans le composant parent n'a aucun effet. Après avoir supprimé la portée, les styles peuvent être remplacés. Mais cela polluera le style global. Afin de résoudre ce problème, vue-loader ajoute une nouvelle méthode d'écriture.
Composant parent :
<style lang="css" scoped> header /deep/ .header{ box-shadow:0px 1px 0px 0px $white; }
header >>> .header{ box-shadow:0px 1px 0px 0px $white; }
</style>
Composant enfant :
<template> <header> <p class="header"> </p> </header> </template>
Cette façon d'écrire et de modifier le style du sous-composant ne polluera pas le style global !
Document officiel : Scoped CSS · vue-loader
Conseils : Cette méthode est prise en charge à partir de vue-loader 11.2.0
Dans le développement utilisant vue, nous faisons parfois référence à des composants externes, y compris des composants d'interface utilisateur (ElementUI, iview).
Lorsque la balise <style>
a l'attribut scoped
, son CSS ne s'applique qu'aux éléments du composant actuel.
Mais après avoir ajouté scoped
dans le composant parent, le style du composant parent ne pénétrera pas dans le composant enfant, donc écrire le style du composant enfant dans le composant parent n'a aucun effet.
在父组件的 <style>
中去掉 scoped
后,父组件中可以书写子组件的样式,但是你会担心这样会污染全局样式。
【因为我们知道正确使用全局样式的姿势是使用一个全局的 app.css】
你可以在一个组件中同时使用有作用域和无作用域的样式:
<style> /* 全局样式 */ </style>