弱水八千 發表於 2020-8-12 11:31:00

css(react)中 global

<h3>局部作用域</h3>
<p>css的规则都是全局的,任何一个组件的样式规则,都对整个页面有效。产生局部作用域的唯一方法,就是使用一个独一无二的class的名字,不会与其他选择器重名,但是当我们与其他人共同开发的时候,无法保证一定与其他人不同,这时候就要用到css modules。</p>
<p>下面是一个React组件App.js</p>
<div class="cnblogs_code">
<pre>import React from 'react'<span style="color: rgba(0, 0, 0, 1)">;
import style from </span>'./App.css'<span style="color: rgba(0, 0, 0, 1)">;

export </span><span style="color: rgba(0, 0, 255, 1)">default</span> () =&gt;<span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> (
    </span>&lt;h1 className={style.title}&gt;<span style="color: rgba(0, 0, 0, 1)">
      Hello World
    </span>&lt;/h1&gt;
<span style="color: rgba(0, 0, 0, 1)">);
};</span></pre>
</div>
<p>上面代码中,我们将样式文件App.css输入到style对象,然后引用style.title代表一个class</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">.title {
color: red;
}</span></pre>
</div>
<p>构建工具会将类名style.title编译成一个哈希字符串。</p>
<div class="cnblogs_code">
<pre>&lt;h1 class="_3zyde4l1yATCOkgn-DBWEL"&gt;<span style="color: rgba(0, 0, 0, 1)">
Hello World
</span>&lt;/h1&gt;</pre>
</div>
<p>App.css也会同时被编译</p>
<div class="cnblogs_code">
<pre>._3zyde4l1yATCOkgn-<span style="color: rgba(0, 0, 0, 1)">DBWEL {
color: red;
}</span></pre>
</div>
<p>这样一来,这个类名就变成独一无二了,只对App组件有效。</p>
<h3>global</h3>
<p>使用global声明的class,都不会被编译成哈希字符串。</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">:global {
...
}</span></pre>
</div>
<pre>:global(#root) {<br>  ...<br>}</pre>
<p>不会把id为root的元素的&nbsp;id&nbsp;编译成哈希字符串。</p>
<p>示例如下:</p>
<p>html:</p>
<p><img src="https://img2020.cnblogs.com/blog/1249006/202008/1249006-20200812114025205-1250887506.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>css:</p>
<p><img src="https://img2020.cnblogs.com/blog/1249006/202008/1249006-20200812113756641-218100723.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;编译结果</p>
<p><img src="https://img2020.cnblogs.com/blog/1249006/202008/1249006-20200812113811670-862537403.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>-------------------</p>
<p><img src="https://img2020.cnblogs.com/blog/1249006/202008/1249006-20200812113825407-978613877.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;编译结果</p>
<p><img src="https://img2020.cnblogs.com/blog/1249006/202008/1249006-20200812113835514-2104146953.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>相信到这里大家一看就明白了。</p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/taohuaya/p/13489655.html
頁: [1]
查看完整版本: css(react)中 global