vue開発では、親コンポーネントがscopedを追加した後.親コンポーネントでサブコンポーネントスタイルを変更できないという問題を解決します.
vueの開発では、uiコンポーネント(element、iview)を含むサブコンポーネントを参照する必要があります.ただし、親コンポーネントにscopedを追加した後、親コンポーネントにサブコンポーネントのスタイルを書くのは効果的ではありません.scopedを削除すると、スタイルを上書きできます.しかし、これはグローバルスタイルを汚染し、この問題を解決するためにvue-loaderが書き方を追加した.
#demo
親コンポーネント:
サブコンポーネントを する があるスタイルを のグローバルスタイルに きます.
、 セレクタの
SASSのようなプリプロセッサでは、
OK、主な内容は以上の点です.
追加の補足が必要です:1、v-htmlで作成されたDOMコンテンツは、役割ドメイン内のスタイルの影響を受けませんが、深さの役割セレクタでスタイル2を設定することができます.CSS役割ドメインはclass 3の代わりに使用できません.再帰コンポーネントで子孫セレクタを使用することに注意してください.
#demo
親コンポーネント:
<style lang="css" scoped>
header /deep/ .header{
box-shadow:0px 1px 0px 0px $white;
}
header >>> .header{
box-shadow:0px 1px 0px 0px $white;
}
子组件:
<template>
<header>
<div class="header">
div>
header>
template>
このような書き方やサブアセンブリのスタイルを修正しても、グローバルスタイルを汚染することはありません.
公式サイトドキュメント:Scoped CSS・vue-loader
Tips:この方法はvue-loader 11.2.0からサポートされています
scoped を取り除くと
ローカルスタイルとグローバルスタイルの混在3深さ使用セレクタvueを用いた開発では,UIコンポーネント(ElementUI,iview)を含む外部コンポーネントを参照することがある.
タグにscoped
がある 、そのCSSは のコンポーネント の にのみ する.しかし、 コンポーネントにscoped
を すると、 コンポーネントのスタイルが コンポーネントに しないため、 コンポーネントに コンポーネントのスタイルを くことは ではありません.
、scopedを り く
コンポーネントの
からscoped
を すると、 コンポーネントに コンポーネントのスタイルを くことができますが、グローバルスタイルを するのではないかと します.【グローバルスタイルを しく する は、グローバルなapp.cssを することであることを っているからです】
、ローカルとグローバルスタイルの
1つのコンポーネントで、アクティブドメインと アクティブドメインのスタイルを に できます.<style>
/* */
style>
<style scoped>
/* */
style>
サブコンポーネントを する があるスタイルを のグローバルスタイルに きます.
、 セレクタの
scoped
スタイルのセレクタを、サブコンポーネントに を えるなど、「より く」 させたい は、>>> /deep/
オペレータを します.
SASSのようなプリプロセッサでは、
>>>
を正しく解析できないものもあります.この場合、/deep/
オペレータで置き換えることができます.これは>>>
の別名で、同じように正常に動作します.OK、主な内容は以上の点です.
追加の補足が必要です:1、v-htmlで作成されたDOMコンテンツは、役割ドメイン内のスタイルの影響を受けませんが、深さの役割セレクタでスタイル2を設定することができます.CSS役割ドメインはclass 3の代わりに使用できません.再帰コンポーネントで子孫セレクタを使用することに注意してください.