全局样式/局部样式
- 全局样式
 
样式文件名为:    xxx.css/scss/less
导入:import ‘xxx.css/scss/less’
类名:就是自定义类名
- 局部样式
 
样式文件名为:   xxx.module.css
导入:import styles from ‘xxx.module.css’
使用:<p className={styles.container}></div>
类名:组件名_自定义类名__hash转base64值取前5位,用于防止缓存
import React from 'react'import Hello from './Hello'import './app.css' // 全局样式import Styles from './hello.module.css' // 局部样式class App extends React.Component {render() {return (<div>App<p className='box'></p><p className={Styles.container}></p><Hello/></div>)}}
cra中使用sass
- 安装两个插件    node-sass 和 sass-loader
$ yarn add node-sass sass-loader -D $ cnpm i node-sass sass-loader -D
 
cra中使用less
安装两个插件 less 和 less-loader (用于less转css)
$ yarn add less less-loader -D $ cnpm i less less-loader -D
cra内置了css和sass配置,但是没有less的配置,
less和sass使用区别不大,去拷贝sass配置【位于config/webpack.config.js】给less即可
504-538 只需将sass改成less
还是报错并且报错中提到了版本就需要降版本
$ yarn add less-loader@7.3.0 -D $ cnpm i less-loader@7.3.0 -D
局部样式中写全局样式
:global 表示里面的类名都是全局类名
用于局部写全局
:global{.wrapper{width: 100px;height: 100px;background: pink;}}import style from './cpp.module.scss'<p className='wrapper'></p>
行内样式
react中不允许如下书写
- jsx也是虚拟DOM写法
 - 虚拟DOM是一个对象模型,要求是对象的写法 ```html 改为如下书写
 
```javascriptclass App extends React.Component {style ={width:'100px',height:'100px',background:'red',}render() {return (<div>{/* 直接在元素上以对象的形式来进行样式的定义 */}<p style={this.style}></p></div>)}}
注意:样式属性要用驼峰命名法表示,如backgroundColor而不是background-color;fontSize而不是font-size
<input type="text" style={{"backgroundColor":"yellow","color":"red"}} value={value}/>
使用classname第三方模块
类名处理
先安装classnames
$ yarn add classnames -D $ cnpm i classnames -D
使用
import React from 'react'import classname from 'classnames' // 导出的classname是一个函数class App extends React.Component {render() {return (<div><p className={classname({a: true,b: true,c: false,})}></p></div>)}}export default App

样式组件 - 了解
安装
$ yarn add styled-components -D $ cnpm i styled-components -D
使用
import React from 'react'import styled from 'styled-components' // todo1、引入console.log(styled)// todo2、创建样式组件const Container = styled.div`width:100px;height:100px;background:${props=>props.color||'red'};// 有color属性就用color属性的颜色,没有则用red`export default class App extends React.Component{color='pink'render(){return(<div>{/* todo3、Container可以作为组件直接使用 */}<Container/><Container color={this.color} /></div>)}}

自动生成类名,不用在起类名
