Home>Article>Web Front-end> How to set css scope

How to set css scope

醉折花枝作酒筹
醉折花枝作酒筹 Original
2021-07-23 10:06:37 4407browse

In CSS, you can use the scoped attribute to set the scope; when the style tag has the scoped attribute, its CSS only affects the elements in the current component. However, the root node of a child component will be affected by both its parent-scoped CSS and the child component's scoped CSS.

How to set css scope

The operating environment of this tutorial: Windows 7 system, CSS3&&HTML5 version, Dell G3 computer.

When I first came into contact with Vue single file, I was a little confused about the scoped attribute in the style tag. After all, I have never used it before. Here are some explanations about scoped.

A standard .vue file looks like this:

// html内容区域  //相关数据及事件区域,通俗说就是我们写JS代码的地方  // CSS样式区域  

You can see that there is a scoped attribute in the style tag. When the style tag has a scoped attribute, its CSS only acts on the current elements in the component. This is similar to style encapsulation in shadow DOM. It has some caveats, but does not require any profill. It achieves the following transformation by using PostCSS:

 

Conversion result:

 

Mixing local and global styles

There is one thing worth noting, in You can use both scoped and unscoped styles in a component:

 

The child element style is the result of the interaction between the root element of the child element and the CSS within the child component

After using scoped, the styles of the parent scope will not penetrate into the child components. However, the root node of a child component will be affected by both its parent-scoped CSS and the child component's scoped CSS. This design is to allow the parent component to adjust the style of the root element of its child component from a layout perspective. The example is as follows:

child component

 

parent component