css中:global()与:local()的区别

:global()-全局作用域与:local()-局部作用域


该文章测试demo为 阮一峰webpack demo中的demo06【 github

文件结构如下:

在这里插入图片描述

  • index.html 普通html网页,引入了bundle.js[webpack打包文件产生的js]
  • app.css 样式文件,h1样式-局部作用域,h2样式-全局作用域
  • main.jsx JSX是一种JavaScript的语法扩展,运用于React架构中,用来描述用户界面。在#example中插入相同的h1 h2元素
  • webpack.config.js 打包配置文件,设定打包规则
  • bundle.js webpack打包文件产生的js
  • package.json 配置文件
  • package-lock.json npm i 自动生成
index.html
<html>
<body>
  <h1 class="h1">Hello World</h1>
  <h2 class="h2">Hello Webpack</h2>
  <div id="example"></div>
  <script src="./bundle.js"></script>
</body>
</html>
app.css
/* local scope */
.h1 {
  color:red;
}

/* global scope */
:global(.h2) {
  color: blue;
}
main.jsx
var React = require('react');
var ReactDOM = require('react-dom');
var style = require('./app.css');

ReactDOM.render(
  <div>
    <h1 className={style.h1}>Hello World</h1>
    <h2 className="h2">Hello Webpack</h2>
  </div>,
  document.getElementById('example')
);

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

.title {
  color: red;
}

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

<h1 class="_3zyde4l1yATCOkgn-DBWEL">
  Hello World
</h1>
webpack.config.js
module.exports = {
  entry: './main.jsx',
  output: {
    filename: 'bundle.js'
  },
  module: {
    rules:[
      {
        test: /\.js[x]?$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['es2015', 'react']
          }
        }
      },
      {
        test: /\.css$/,
        use: [
          {
            loader: 'style-loader'
          },
          {
             loader: 'css-loader',
             options: {
               modules: true
             }
          }
        ]
      }
    ]
  }
};
package.json
{
  "name": "webpack-demo6",
  "version": "1.0.0",
  "scripts": {
    "dev": "webpack-dev-server --open",
    "build": "webpack -p"
  },
  "license": "MIT"
}

运行方式
  1. npm i
  2. npm run dev
运行结果

在这里插入图片描述

若将app.css和main.jsx文件修改为
在这里插入图片描述

结果为
在这里插入图片描述

总结

jsx文件中引入css文件,局部作用域样式只能在jsx中起效果,全局作用域样式可以影响该组件的父组件内元素样式

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值