内联样式

<div style={{textAlign:'center',color:'red'}}></div>

style接收一个对象,对象的属性名就是style的属性名

需要注意的是,style的属性名可以使用横杠分割,如text-align,而对象的属性名不行,所以需要转换一下,使用驼峰式,变为 textAlign


由于接收的是对象,所以可以定义一个变量来传入,如下所示

const ss = {textAlign:'center',color:'red'}

<div style={ss} ></div>


使用class

<div className='class1 class2'></div>

如上所示,使用className,为什么?因为class在js中是保留字


使用参数

const myClass = 'class1';
myClass += ' class2'

<div className={myClass }></div>


使用classNames

这个是一个插件,首先需要安装

`yarn add classnames`

使用

import classnames from 'classnames'
import React, { useState, useRef } from 'react';

const [isShow , setIsShow] = useState<boolean>(false);
<div className={classNames('class1',{'class2': true,'class3': isShow }}></div>


使用参数

import classnames from 'classnames'
import React, { useState, useRef } from 'react';

const [isShow , setIsShow] = useState<boolean>(false);
const myclass = classNames('class1',{
    'class2': true,
    'class3': isShow 
});
<div className={myclass}></div>


umi中使用module方式

import styles from './index.less';
<div className={ styles.myClass }></div>

结合classnames

const inputClass = classNames(styles.input, {
    [styles.show]: searchMode,
  });
<div className={inputClass} ></div>


样式的覆盖

有时候需要对第三方组件的样式进行覆盖,可如下操作

import './index.less'

index.less文件

.ant-list-items {
  margin-left: 0px !important;
}

.ant-list-item {
  padding-left: 0px !important;
}

.ant-list-item:hover {
  background: #f0f0f0 !important;
}

使用 styled-components

第三方组件,待编写


使用 styled-jsx

第三方组件,待编写