You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a `<style>`tag has the `scoped`attribute, its CSS will apply to elements of the current component only. This is similar to the style encapsulation found in Shadow DOM. It comes with some caveats, but doesn't require any polyfills. It is achieved by using PostCSS to transform the following:
@@ -14,7 +14,7 @@ When a `<style>` tag has the `scoped` attribute, its CSS will apply to elements
14
14
</template>
15
15
```
16
16
17
-
Into the following:
17
+
转换结果:
18
18
19
19
```html
20
20
<style>
@@ -28,48 +28,48 @@ Into the following:
28
28
</template>
29
29
```
30
30
31
-
## Mixing Local and Global Styles
31
+
## 混用本地和全局样式
32
32
33
-
You can include both scoped and non-scoped styles in the same component:
33
+
你可以在一个组件中同时使用有作用域和无作用域的样式:
34
34
35
35
```html
36
36
<style>
37
-
/*global styles*/
37
+
/*全局样式*/
38
38
</style>
39
39
40
40
<stylescoped>
41
-
/*local styles*/
41
+
/*本地样式*/
42
42
</style>
43
43
```
44
44
45
-
## Child Component Root Elements
45
+
## 子组件的根元素
46
46
47
-
With`scoped`, the parent component's styles will not leak into child components. However, a child component's root node will be affected by both the parent's scoped CSS and the child's scoped CSS. This is by design so that the parent can style the child root element for layout purposes.
Some pre-processors, such as Sass, may not be able to parse `>>>` properly. In those cases you can use the `/deep/`combinator instead - it's an alias for `>>>`and works exactly the same.
DOM content created with `v-html`are not affected by scoped styles, but you can still style them using deep selectors.
69
+
通过 `v-html`创建的 DOM 内容不受作用域内的样式影响,但是你仍然可以通过深度作用选择器来为他们设置样式。
70
70
71
-
## Also Keep in Mind
71
+
## 还有一些要留意
72
72
73
-
-**Scoped styles do not eliminate the need for classes**. Due to the way browsers render various CSS selectors,`p { color: red }`will be many times slower when scoped (i.e. when combined with an attribute selector). If you use classes or ids instead, such as in `.example { color: red }`, then you virtually eliminate that performance hit. [Here's a playground](https://stevesouders.com/efws/css-selectors/csscreate.php) where you can test the differences yourself.
73
+
-**CSS 作用域不能代替 class**。考虑到浏览器渲染各种 CSS 选择器的方式,当`p { color: red }`设置了作用域时 (即与特性选择器组合使用时) 会慢很多倍。如果你使用 class 或者 id 取而代之,比如 `.example { color: red }`,性能影响就会消除。你可以在[这块试验田](https://stevesouders.com/efws/css-selectors/csscreate.php)中测试它们的不同。
74
74
75
-
-**Be careful with descendant selectors in recursive components!**For a CSS rule with the selector `.a .b`, if the element that matches `.a`contains a recursive child component, then all `.b`in that child component will be matched by the rule.
0 commit comments