Table of Contents
CSS modules are:
An example heading
#Why should we use CSS modules?
Home Web Front-end Front-end Q&A what is css module

what is css module

Jul 21, 2021 pm 03:27 PM

The CSS module is a CSS file in which all class names have only local scope, that is, the scope of all class names and animation names in the CSS file defaults to the current scope. CSS modules limit the scope to components, thus avoiding the problem of global scope.

what is css module

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

CSS modules are:

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

CSS files in The scope of all class names and animation names defaults to the current scope.

A CSS module is a CSS file in which all class names have local scope.

So the CSS module is not an official spec or implementation in browsers, but a method (with the help of Webpack or Browserify) that changes the scope of the class name and selector to the current file (similar to namespace).

What does this look like and why? We'll see that in a moment. First, remember how HTML and CSS work in general. A class name is applied to HTML:

<h1 id="An-nbsp-example-nbsp-heading">An example heading</h1>
Copy after login

Define this class in CSS:

.title {  
    background-color: red;  
}
Copy after login

Once this CSS is applied to this HTML document, the background color of the h1 to which this class is applied will change is red. We don't need to deal with CSS or HTML. Browsers understand the format of these files.

CSS modules take a different approach. Unlike writing plain HTML, we need to write our markup in a JavaScript file, such as index.js. The following example shows us how it will work (we will use a more practical example later):

import styles from  "./styles.css"; 
element.innerHTML = 
    `<h1 class="${styles.title}"> 
        An example heading 
    </h1>`;
Copy after login

During our build process, the compiler will look at the styles.css file we introduced, and then Our JavaScript file applies the .title class through styles.title. Our build process will then process these into a new, separate HTML and CSS file, replacing the HTML Class attribute and CSS selector class with a new string.

The generated HTML file may look like this:

<h1 class="_styles__title_309571057">
    An example heading 
</h1>
Copy after login

The generated CSS file may look like this:

._styles__title_309571057 { 
    background-color: red; 
}
Copy after login

The previous class attributes and selector .title no longer exist at all , replaced by a completely new string. Our previous CSS is no longer provided to the browser at all.

what is css module

#Why should we use CSS modules?

Use CSS modules, which will ensure that all styles are applied to a single component:

  • In one place

  • Apply only to this component and nothing else

Also, any component can have a real dependency, as

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

element.innerHTML = `<div class="${buttons.red}  ${padding.large}">`;
Copy after login

does this The purpose is to solve the problem of global scope in CSS

Have you ever tried to write simple CSS as quickly as possible without considering the impact on others due to lack of time and resources? What's the impact?

Have you ever had some random bad bits left at the bottom of your style sheet and tried to organize them but never got organized?

Have you ever come across a style that you weren’t entirely sure what it did or whether it was used?

Have you ever considered that you could remove some styles without breaking others? Wondering whether this style depends on you or depends on others? Or override the style elsewhere?

These questions may leave you with a headache, extended project deadlines, and a sad, longing look out the window.

Using CSS modules and the concept of default current scope, these problems will be avoided. When you write a style you have to think about the end result of the style.

For example, if you use random-gross-class in HTML without applying it as a CSS module style class, the style will not be applied because the CSS selector will be converted to ._style_random -gross-class_0038089.

(Learning video sharing: css video tutorial

The above is the detailed content of what is css module. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What is useEffect? How do you use it to perform side effects? What is useEffect? How do you use it to perform side effects? Mar 19, 2025 pm 03:58 PM

The article discusses useEffect in React, a hook for managing side effects like data fetching and DOM manipulation in functional components. It explains usage, common side effects, and cleanup to prevent issues like memory leaks.

Explain the concept of lazy loading. Explain the concept of lazy loading. Mar 13, 2025 pm 07:47 PM

Lazy loading delays loading of content until needed, improving web performance and user experience by reducing initial load times and server load.

What are higher-order functions in JavaScript, and how can they be used to write more concise and reusable code? What are higher-order functions in JavaScript, and how can they be used to write more concise and reusable code? Mar 18, 2025 pm 01:44 PM

Higher-order functions in JavaScript enhance code conciseness, reusability, modularity, and performance through abstraction, common patterns, and optimization techniques.

How does currying work in JavaScript, and what are its benefits? How does currying work in JavaScript, and what are its benefits? Mar 18, 2025 pm 01:45 PM

The article discusses currying in JavaScript, a technique transforming multi-argument functions into single-argument function sequences. It explores currying's implementation, benefits like partial application, and practical uses, enhancing code read

How does the React reconciliation algorithm work? How does the React reconciliation algorithm work? Mar 18, 2025 pm 01:58 PM

The article explains React's reconciliation algorithm, which efficiently updates the DOM by comparing Virtual DOM trees. It discusses performance benefits, optimization techniques, and impacts on user experience.Character count: 159

How do you connect React components to the Redux store using connect()? How do you connect React components to the Redux store using connect()? Mar 21, 2025 pm 06:23 PM

Article discusses connecting React components to Redux store using connect(), explaining mapStateToProps, mapDispatchToProps, and performance impacts.

What is useContext? How do you use it to share state between components? What is useContext? How do you use it to share state between components? Mar 19, 2025 pm 03:59 PM

The article explains useContext in React, which simplifies state management by avoiding prop drilling. It discusses benefits like centralized state and performance improvements through reduced re-renders.

How do you prevent default behavior in event handlers? How do you prevent default behavior in event handlers? Mar 19, 2025 pm 04:10 PM

Article discusses preventing default behavior in event handlers using preventDefault() method, its benefits like enhanced user experience, and potential issues like accessibility concerns.

See all articles