在我使用antd等组件时,常常需要更改组件的默认样式,这时候,我们就需要用:global{}将需要修改的样式包裹起来。这种情况,我遇到过很多次,但是从来没有探究过原因,今天就浅浅的说一下我的理解。
在说这个问题之前,我们需要先知道CSS Modules。
CSS Modules主要是实现局部作用域模块依赖两个功能。我们主要了解第一个功能就好。

局部作用域

我们都知道,CSS的规则都是全局的,任何一个组件的样式规则,都对整个页面有效。产生局部作用域的唯一方法,就是使用一个独一无二的class的名字,不会与其他选择器重名。但是当我们与其他人共同开发的时候,无法保证一定与其他人不同,这时候就要用到 CSS Modules了。
下面是一个React组件App.js。

import React from 'react';
import style from './App.css';export default () => {return (<h1 className={style.title}>Hello World</h1>);
};

上面代码中,我们将样式文件App.css输入到style对象,然后引用style.title代表一个class

.title {color: red;
}

构建工具会将类名style.title编译成一个哈希字符串。

<h1 class="_3zyde4l1yATCOkgn-DBWEL">Hello World
</h1>

App.css也会同时被编译。

._3zyde4l1yATCOkgn-DBWEL {color: red;
}

这样一来,这个类名就变成独一无二了,只对App组件有效。
CSS Modules 提供各种插件,支持不同的构建工具。

关于global

这时候再来理解global就容易很多,我们使用的组件的样式大部分都是全局样式,使用局部方式声明class经过编译后,无法与组件的默认样式class匹配,样式自然就无法进行覆盖,要覆盖默认样式就需要使用全局样式。使用global声明的class,都不会被编译成哈希字符串也就能够进行覆盖了。

参考:
阮一峰老师的CSS Modules 用法教程

CSS中的global相关推荐

  1. div+css中命名规范

    上次给别人演示div的效果时,写了css样式却一直不能呈现,最后不小心发现自己在写css样式时候,给一个class命名为数字开头的名称,才想起来自己去年刚学习样式表时候也出现此问题,最后被我解决掉的, ...

  2. css中变量_CSS中的变量

    css中变量 CSS | 变数 (CSS | Variables) CSS variables allow you to create reusable values that can be used ...

  3. php 兼容火狐,HTML_总结CSS中火狐浏览器与IE浏览器的兼容代码,如何让你写的代码更兼容火狐 - phpStudy...

    总结CSS中火狐浏览器与IE浏览器的兼容代码 如何让你写的代码更兼容火狐和IE两大主流浏览器?本文将总结总结CSS中火狐浏览器与IE浏览器的兼容代码,兼容你兼容主要是语法规范问题,你写CSS写规范了, ...

  4. HTML 与 CSS 中的文本

    HTML 与 CSS 中的文本 结构化元素 结构化元素就是指 HTML 元素中具有明确含义和作用的元素,例如 `` 元素表示段落.相对于 HTML 4.01 版本而言,HTML5 版本新增了一系列结构 ...

  5. 关于CSS中浏览器兼容的问题总结二

    CSS对浏览器的兼容性有时让人感觉比较麻烦,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理方法并整理了一下.对于web2.0的过度,请尽量用xht ...

  6. Vue超好玩的新特性:在CSS中引入JS变量

    授权转载自: 手撕红黑树 https://juejin.im/post/6856668819344392206 幻想 以前做项目的时候经常会这么想: <template><h1> ...

  7. Vue超好玩的新特性:在CSS中使用JS变量

    前言 以前在翻译<Vue 3:2020年中状态更新>的时候,文中曾经提到过尤雨溪希望7月中旬发布RC版(候选版本),8月初发布3.0正式版. 不过现在已经八月初了怎么还是没发布呢?这个月初 ...

  8. css中float用法

    文档流:浏览器根据元素在html文档中出现的顺序,从左向右,从上到下依次排列.       浮动属性是CSS中的定位属性,用法如下:         float: 浮动方向(left.right.no ...

  9. 关于css中float的一切

    原文:http://css-tricks.com/all-about-floats/  这篇文章说的简单易懂 float是CSS中关于定位的属性. float有4个值:none, left, righ ...

最新文章

  1. 英特尔展示体育行业与大数据技术应用
  2. 如何将docker 镜像上传到docker hub仓库
  3. 两个datatable的比较
  4. 史上最全的程序猿工具集(辅助工具、开发工具、技术栈、学习网站、博客论坛)
  5. 【渝粤教育】国家开放大学2018年秋季 0714-21T建筑识图与CAD 参考试题
  6. CSS实例——远视图
  7. 基于Verilog实现2ASK调制
  8. 机器学习数据预处理之字符串转数字
  9. Google桌面搜索使用与技巧
  10. 2019年8月 华为鸿蒙,华为2019年开发者大会将于8月9日举行,期待鸿蒙吗?
  11. mvn命令运行springboot程序报错No compiler is provided in this environment. Perhaps you are runningon a JRE
  12. 内外墙乳胶漆颜色怎么搭配,内外墙品牌涂料如何选购?
  13. android 定制手机刷机,怎么定制安卓刷机包
  14. eclipse运行出现unable to launch 错误
  15. shell命令使用sed从JSON中提取指定的值
  16. Flink cdc +doris生产遇到的问题汇总-持续更新
  17. 语文文学常识。不转可惜!谁整理的?太佩服啦!
  18. linux dwg查看软件下载,CAD迷你看图 - DWG文件浏览小工具
  19. Python之父吉多·范罗苏姆谈中国的996工作制度
  20. 第三章:资源,样式与模板

热门文章

  1. 深入java虚拟机-JVM (java virture mechine)
  2. 小程序源码:智力考验看成语猜古诗句微信小程序-多玩法安装简单
  3. 英雄无敌3的伤害算法
  4. Mybatis之一个SQL的运行过程
  5. 小程序setData修改数组和对象
  6. 东软睿道python培训
  7. matlab如何新建mat文件,如何在Matlab中创建.mat文件?
  8. 单片机仿真器是什么?有什么作用?
  9. 中文日期格式转成英文日期格式
  10. SCP_NFS_TFTP