css(react)中 global


局部作用域

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組件有效。

global

使用global聲明的class,都不會被編譯成哈希字符串。

:global {
...
}
:global(#root) {
  ...
}

不會把id為root的元素的 id 編譯成哈希字符串。

示例如下:

html:

 

css:

 

 編譯結果

 

 

-------------------

 

 編譯結果

 

 

相信到這里大家一看就明白了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM