步入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'}
相关推荐
web打印社区1 小时前
Vue3 发票静默打印,我这边能跑通的一版
前端·javascript·vue.js·chrome·electron
嘟哩DuliDuli1 小时前
创作 Agent 的任务状态该如何保存
android·java·javascript
lemon_sjdk2 小时前
JavaScript 常用关键字全解析
开发语言·javascript·ecmascript
高申航2 小时前
Vue 3 + DYMO Connect Framework 实战:从标签模板到打印服务的完整实现
前端·javascript·vue.js
雪芽蓝域zzs2 小时前
分页组件 + el-config-provider 中文国际化 + 靠右布局
前端·javascript·vue.js
志尊宝3 小时前
Vue3 零基础每日笔记(016):v-for 列表渲染——key 的作用与为什么不能用 index
javascript·vue.js·笔记
nunumaymax3 小时前
【第九章-React Router 6】
前端·react.js
toooooop83 小时前
thinkphp查询数据表最后的自增id
前端·javascript·数据库
honkun63 小时前
vue 甘特图组件 vxe-gantt 配置拖拽调整任务起止日期时实时显示 Tooltip 提示
javascript·vue.js·甘特图·vxe-gantt
资讯综合4 小时前
2026全国云渲染网站排名 不同需求用户适配榜单
开发语言·前端·javascript