


This article brings you relevant knowledge about the difference between scoped css and css module. Both scoped css and css module are used to control the local scope of css and prevent duplication of class names. So what is the difference between the two? Well, I hope it helps everyone.
Preface
scoped css and css module are both designed to control the local scope of css and prevent problems such as duplication of class names. So what's the difference between the two?
1. css module
1.1. Explanation
Regenerates class names for all class names, effectively avoiding the problems of css weight and class name duplication. css module directly replaces the class name, eliminating the possibility of the user setting the class name to affect the component style, so there is no need to rack your brains for naming.
1.2 Implementation Principle
By adding a hash string suffix to the style name, the compiled style in a specific scope context can be globally unique.
1.3 Usage
- In the webpack.base.conf.js file, pass modules: true to css-loader to enable CSS Module. localIdentName is the naming rule for setting the generated style.
//webpack.base.conf.jsmodule: { rules: [ // ... 其它规则省略 { test: /\.css$/, use: [ 'vue-style-loader', { loader: 'css-loader', options: { // 开启 CSS Modules modules: true, // 自定义生成的类名 localIdentName: '[local]_[hash:base64:8]' } } ] } ] }
- Add the module attribute in the tag
<style>.red { color: red;}.bold { font-weight: bold;}</style>
- Use it through a dynamic class binding in the vue template
<template> <p> This should be red </p></template><template> <p> </p> <p> Am I red? </p> <p> Red and bold </p> </template>
- Use in js
<script>export default { created () { console.log(this.$style.red) // -> "red_1VyoJ-uZ" // 一个基于文件名和类名生成的标识符 }}</script>
1.4 Usage effect
<template> <p> Im gray </p></template><style>.gray { color: gray;}</style>
Result after compilation:
//编译结果<p>Im gray</p>.gray_3FI3s6uz { color: gray;}
1.5 Notes
- When processing keyframes of animation animation, the animation name must be written first. For example, if animation: deni .5s, it will compile normally; if animation: .5s deni, it will compile abnormally.
- Remember to configure css-loader, otherwise it will not take effect.
- If you are using style-loader, you need to configure and change it to vue-style-loader for it to take effect.
- How do css modules solve the weight problem?
Allows style rules to be encapsulated through renaming or namespace, reducing constraints on selectors, so that class names can be used comfortably without specific methods.
When style rules are coupled to each component, the styles are also removed when the component is no longer used.
2. Scoped
2.1 Implementation Principle
Vue ensures uniqueness by adding unique and non-repeating tags to the DOM structure and css style. Achieve the purpose of style privatization and modularization. It is impossible to completely avoid the problem of css weight and class name duplication.
2.2 Usage method
Add the scoped attribute to the tag
2.3 Usage effect
<style>h1 { color: #f00;}</style>
Compiled result:
h1[data-v-4c3b6c1c] { color: #f00;}
2.4 Disadvantages
- If the user defines the same class name elsewhere, it may still affect the style of the component.
- According to the characteristics of CSS style priority, scoped processing will increase the weight of each style. Referring to components that use scoped
As a sub-component, it becomes difficult to modify the style of the sub-component. You may have no choice but to use it! important - Scoped will slow down tag selector rendering many times. When using tag selectors, scoped will seriously reduce performance, but using class or id will not
3. Summary
The actual effect of css module is better than that of scoped, and the configuration of css module is not difficult, so I recommend css module more.
(Learning video sharing: css video tutorial)
The above is the detailed content of Detailed answer to the difference between scoped css and css module in css scope. For more information, please follow other related articles on the PHP Chinese website!

在css中,可用list-style-type属性来去掉ul的圆点标记,语法为“ul{list-style-type:none}”;list-style-type属性可设置列表项标记的类型,当值为“none”可不定义标记,也可去除已有标记。

区别是:css是层叠样式表单,是将样式信息与网页内容分离的一种标记语言,主要用来设计网页的样式,还可以对网页各元素进行格式化;xml是可扩展标记语言,是一种数据存储语言,用于使用简单的标记描述数据,将文档分成许多部件并对这些部件加以标识。

在css中,可以利用cursor属性实现鼠标隐藏效果,该属性用于定义鼠标指针放在一个元素边界范围内时所用的光标形状,当属性值设置为none时,就可以实现鼠标隐藏效果,语法为“元素{cursor:none}”。

转换方法:1、给英文元素添加“text-transform: uppercase;”样式,可将所有的英文字母都变成大写;2、给英文元素添加“text-transform:capitalize;”样式,可将英文文本中每个单词的首字母变为大写。

在css中,rtl是“right-to-left”的缩写,是从右往左的意思,指的是内联内容从右往左依次排布,是direction属性的一个属性值;该属性规定了文本的方向和书写方向,语法为“元素{direction:rtl}”。

在css中,可以利用“font-style”属性设置i元素不是斜体样式,该属性用于指定文本的字体样式,当属性值设置为“normal”时,会显示元素的标准字体样式,语法为“i元素{font-style:normal}”。

在css3中,可以用“transform-origin”属性设置rotate的旋转中心点,该属性可更改转换元素的位置,第一个参数设置x轴的旋转位置,第二个参数设置y轴旋转位置,语法为“transform-origin:x轴位置 y轴位置”。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

Dreamweaver Mac version
Visual web development tools

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.
