目录
CSS模块是:
为什么我们应该使用CSS模块?
首页 web前端 前端问答 css模块是什么

css模块是什么

Jul 21, 2021 pm 03:27 PM

CSS模块就是所有的类名都只有局部作用域的CSS文件,即CSS文件中的所有类名和动画名的作用域都默认为当前作用域。CSS模块将作用域限制于组件中,从而避免了全局作用域的问题。

css模块是什么

本教程操作环境:windows7系统、CSS3版、Dell G3电脑。

CSS模块是:

CSS files in which all class names and animation names are scoped locally by default.

CSS文件中的所有类名(class names) 和动画名(animation names) 的作用域都默认为当前作用域。

CSS模块就是所有的类名都只有局部作用域的CSS文件。

所以CSS模块不是浏览器中的 官方标准(official spec) 或者 实践(implementation) 而是一个(在Webpack或者Browserify的帮助下)改变类名和选择器的作用域到当前文件(类似于命名空间)的构建过程。

这看起来像什么以及为什么这样呢?我们将马上看到它。首先,记住通常情况下HTML和CSS是怎么工作的。一个类名应用到HTML中:

<h1 class="title">An example heading</h1>
登录后复制

在CSS中定义这个类:

.title {  
    background-color: red;  
}
登录后复制

一旦这个CSS被应用到这个HTML文档中,应用这个类的h1的背景色将变为红色。我们不需要处理CSS或者HTML。浏览器明白这些文件的格式。

CSS模块采用了不同的方法。与写纯HTML不同,我们需要在一个JavaScript文件中,比如index.js写我们的标记。下面这个例子告诉我们它将怎样工作(稍后我们将采用一个更实际的例子):

import styles from  "./styles.css"; 
element.innerHTML = 
    `<h1 class="${styles.title}"> 
        An example heading 
    </h1>`;
登录后复制

在我们的构建过程中,编译程序将查看我们引入的styles.css文件,随后查看我们的JavaScript文件,将.title类通过styles.title应用。我们的构建过程接着将处理这些到一个新的、分离的HTML和CSS文件,用一个新的字符串替换HTML类属性(HTML Class )和CSS选择器类(CSS selector class)。

生成的HTML文件可能是这样:

<h1 class="_styles__title_309571057">
    An example heading 
</h1>
登录后复制

生成的CSS文件可能是这样:

._styles__title_309571057 { 
    background-color: red; 
}
登录后复制

之前的类属性和选择器.title已经完全不存在了,取而代之的是一个全新的字符串。我们之前的CSS已经根本不提供给浏览器了。

1.png

为什么我们应该使用CSS模块?

使用CSS模块,它将保证所有样式都作用于单个组件:

  • 在一个地方

  • 只应用于该组件而没有别的

此外,任何组件都可以有一个真正的依赖关系,如

import buttons from "./buttons.css";
import padding from "./padding.css";

element.innerHTML = `<div class="${buttons.red}  ${padding.large}">`;
登录后复制

这种做法的目的是为了解决css中全局作用域(global scope)的问题

你曾经有过试图在一个缺乏时间和资源的情况下尽快写出简单的CSS而不用考虑它对其他造成的影响的情况吗?

你曾经有在样式表的底部残留一些随意的不好的片段并且尝试去组织他们但是从来没有组织吗?

你曾经碰到过一些你并不能完全确认它的作用或者是否已经被使用的样式吗?

你曾经是否考虑过你可以移除一些样式而不破坏其他?疑惑这个样式是取决于自己还是依赖于其他?或者在其他地方重写样式?

这些问题可能会让你很头疼,延长项目的截止日期,并且忧伤的、渴望的望着窗外。

使用CSS模块以及默认当前作用域的理念,这些问题都将被避免。当你写样式时你必须思考样式的最终结果。

比如,如果你在HTML中使用random-gross-class而没有将其应用为一个CSS模块风格的类,这个样式不会被应用,因为CSS选择器将会被转换为._style_random-gross-class_0038089.

(学习视频分享:css视频教程

以上是css模块是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1667
14
CakePHP 教程
1426
52
Laravel 教程
1328
25
PHP教程
1273
29
C# 教程
1255
24
React的生态系统:库,工具和最佳实践 React的生态系统:库,工具和最佳实践 Apr 18, 2025 am 12:23 AM

React生态系统包括状态管理库(如Redux)、路由库(如ReactRouter)、UI组件库(如Material-UI)、测试工具(如Jest)和构建工具(如Webpack)。这些工具协同工作,帮助开发者高效开发和维护应用,提高代码质量和开发效率。

React的未来:Web开发的趋势和创新 React的未来:Web开发的趋势和创新 Apr 19, 2025 am 12:22 AM

React的未来将专注于组件化开发的极致、性能优化和与其他技术栈的深度集成。1)React将进一步简化组件的创建和管理,推动组件化开发的极致。2)性能优化将成为重点,特别是在大型应用中的表现。3)React将与GraphQL和TypeScript等技术深度集成,提升开发体验。

React的前端开发:优势和技术 React的前端开发:优势和技术 Apr 17, 2025 am 12:25 AM

React的优势在于其灵活性和高效性,具体表现在:1)组件化设计提高了代码重用性;2)虚拟DOM技术优化了性能,特别是在处理大量数据更新时;3)丰富的生态系统提供了大量第三方库和工具。通过理解React的工作原理和使用示例,可以掌握其核心概念和最佳实践,从而构建高效、可维护的用户界面。

反应:JavaScript库用于Web开发的功能 反应:JavaScript库用于Web开发的功能 Apr 18, 2025 am 12:25 AM

React是由Meta开发的用于构建用户界面的JavaScript库,其核心是组件化开发和虚拟DOM技术。1.组件与状态管理:React通过组件(函数或类)和Hooks(如useState)管理状态,提升代码重用性和维护性。2.虚拟DOM与性能优化:通过虚拟DOM,React高效更新真实DOM,提升性能。3.生命周期与Hooks:Hooks(如useEffect)让函数组件也能管理生命周期,执行副作用操作。4.使用示例:从基本的HelloWorld组件到高级的全局状态管理(useContext和

React与后端框架:比较 React与后端框架:比较 Apr 13, 2025 am 12:06 AM

React是前端框架,用于构建用户界面;后端框架用于构建服务器端应用程序。React提供组件化和高效的UI更新,后端框架提供完整的后端服务解决方案。选择技术栈时需考虑项目需求、团队技能和可扩展性。

了解React的主要功能:前端视角 了解React的主要功能:前端视角 Apr 18, 2025 am 12:15 AM

React的主要功能包括组件化思想、状态管理和虚拟DOM。1)组件化思想允许将UI拆分成可复用的部分,提高代码可读性和可维护性。2)状态管理通过state和props管理动态数据,变化触发UI更新。3)虚拟DOM优化性能,通过内存中的DOM副本计算最小操作更新UI。

React和前端开发:全面概述 React和前端开发:全面概述 Apr 18, 2025 am 12:23 AM

React是由Facebook开发的用于构建用户界面的JavaScript库。1.它采用组件化和虚拟DOM技术,提高了UI开发的效率和性能。2.React的核心概念包括组件化、状态管理(如useState和useEffect)和虚拟DOM的工作原理。3.在实际应用中,React支持从基本的组件渲染到高级的异步数据处理。4.常见错误如忘记添加key属性或不正确的状态更新可以通过ReactDevTools和日志调试。5.性能优化和最佳实践包括使用React.memo、代码分割和保持代码的可读性与可维

HTML中的反应力量:现代网络开发 HTML中的反应力量:现代网络开发 Apr 18, 2025 am 12:22 AM

React在HTML中的应用通过组件化和虚拟DOM提升了web开发的效率和灵活性。1)React组件化思想将UI分解为可重用单元,简化管理。2)虚拟DOM优化性能,通过diffing算法最小化DOM操作。3)JSX语法允许在JavaScript中编写HTML,提升开发效率。4)使用useState钩子管理状态,实现动态内容更新。5)优化策略包括使用React.memo和useCallback减少不必要的渲染。

See all articles