通过local和global设置类名是否被模块化
目录
一、使用:local()和:global()
1、:local()包裹的类名
2、:global()包裹的类名
二、注意:
以下所阐述都拿此代码举例说明:
.title{
color: red;
text-align: center;
font-weight: 200;}
}
/* css模块化,只针对类选择器和Id选择器生效*/
/* css模块化不会将标签选择器模块化*/
/* h1{
font-style: italic;
}*/
1、:local()包裹的类名
是被模块化的类名,只能通过class Name={css0bj.类名]来使用同时,:local默认可以不写,这样,默认在样式表中定义的类名,都是被模块化的类名。
具体说明:
title是已经被默认模块化了,真正的类名就不会叫title了,会叫title锁定的字符串,才是真正的类名。
2、:global()包裹的类名
是全局生效的,不会被C33-mouule控制,定义的类名是什么,就是使用定义的类名class Name=“类名“。
具体阐述:
.test{
font-style: italic;}
这样的代码还是会被模块化,要不想被模块化可以如下写代码:
:global(.test){
font-style: italic;
)
如此便不会有title类。
要想有title类;
因为两个字符串是不能直接写在一起的,所以有以下两种代码的写法。
第一种代码:
render(){
return <div>
<h1 class Name={cssobj. title + ' test'}>这是评论列表组件</h1>
第二种代码:
render() {
return <div>
{/* <h1 class Name={cssobj. title + ' test'}>这是评论列表组件</h1>*/}
<h1 class Name={[cssobj. title, 'test'].join(’')}>这是评论列表组件</1>
注意:被:global()包裹的类名,不会被模块化,而是全局生效的。
只有.title这样的类样式选择器,才会被模块化控制,被:local()包裹的类名,默认情况下,所有的类名和id都会被模块化;类似于:global()包裹起来的类名,这样的标签选择器,不会被模块化控制。