步入React前厅 - Css In React

目录

扩展学习资料

行内样式

引入样式表

[CSS Module](#CSS Module)

@/src/components/common.module.css

@/src/components/listitem.module.css

css管理进阶

Css管理工具

练习


扩展学习资料

|------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
| 资料名称 | 链接 |
| css module | CSS Modules 用法教程 - 阮一峰的网络日志 |
| 在React中使用css预编译 | https://juejin.im/post/5c3d67066fb9a049f06a8323 |
| styled component | styled-components |

行内样式

html 复制代码
<div style={{fontSize: 18, color: red}}>Content Here</div>

引入样式表

html 复制代码
import './listitem.css'; // .title { font-size: 22px } // 全局样式,其他组件也可以使用
<span className='title'>{props.data.name}</span>

CSS Module

html 复制代码
// 基于前端工程化开发的一套解决方案
import style from './listitem.module.css'; // .title { font-size: 22px } 
<span className={style.title}>{props.data.name}</span>

解决了CSS的一些问题: 全局污染 命名混乱 没有依赖管理 可以不使用sass、less等第三方库

  • 不使用选择器,使用class名定义样式
  • 不层叠class,使用一个class定义样式
  • 用compose来组合

@/src/components/common.module.css

css 复制代码
.common {
  font-size: 16px;
  background-color: aqua;
  text-decoration: underline;
}

@/src/components/listitem.module.css

css 复制代码
.common {
  text-decoration: underline;
  text-indent: 2em;
  display: block;
}
.title {
  /* composes: common; */
  composes: common from 'common.module.css';
  font-size: 20px;
  font-weight: bold;
  color: #710000;
}

css管理进阶

Css管理工具

  • Styled-component【js赋能,解决css不具备的一些能力,如:变量循环,函数】
  • Classnames【更方便的使用cssModule】
javascript 复制代码
// npm install classnames --save
import classnames from 'classnames/bind';
const cls = classnames.bind(style);
<span className={style.title}>{props.data.name}</span>
// =>
<span className={cls('title', 'price-tag2')}>¥{props.data.price}</span>

import cn from 'classnames';
const count = 0;
const _cn = cn({
    'themed-grid-col-s': !count,
});
<div className={`col-2 themed-grid-col ` + _cn}>
   {`${count ? count + '个' : count}`}
</div>

练习

1.将案例的购物车列表改为单双行不同的样式(例如双数行底色为: #ddd)

css 复制代码
{index%2 > 'background: #ddd'}
相关推荐
过期的H2O221 分钟前
【H2O2|全栈】关于CSS(4)CSS基础(四)
前端·css
纳尼亚awsl34 分钟前
无限滚动组件封装(vue+vant)
前端·javascript·vue.js
八了个戒39 分钟前
【TypeScript入坑】TypeScript 的复杂类型「Interface 接口、class类、Enum枚举、Generics泛型、类型断言」
开发语言·前端·javascript·面试·typescript
西瓜本瓜@42 分钟前
React + React Image支持图像的各种转换,如圆形、模糊等效果吗?
前端·react.js·前端框架
黄毛火烧雪下43 分钟前
React 的 useEffect 钩子,执行一些异步操作来加载基本信息
前端·chrome·react.js
蓝莓味柯基1 小时前
React——点击事件函数调用问题
前端·javascript·react.js
资深前端之路1 小时前
react jsx
前端·react.js·前端框架
一嘴一个橘子1 小时前
js 将二进制文件流,下载为excel文件
javascript
小兔崽子去哪了2 小时前
Element plus 图片手动上传与回显
前端·javascript·vue.js
A阳俊yi2 小时前
Vue(13)——router-link
前端·javascript·vue.js