(1)内联样式

注:样式要采用驼峰命令发,如果非要使用原生css样式写法,需加引号

缺点:一些动画,伪类不能使用

class App extends Component {
constructor(props) {
super(props);
this.state = {date: new Date()};
} render() {
const styleCss = {
header : {
color: 'red',
backgroundColor: '#ccc',
"padding-top": '20px',
paddingBottom: '20px'
}
} return (
<div className="App">
<p style={styleCss.header}>这是一段文字,哈哈</p>
</div>
);
}
}

  内联样式中的表达式:

class App extends Component {
constructor () {
super();
this.state = {
minHeader: false
};
}; switchHeader () {
this.setState({
minHeader:!this.state.minHeader
})
} render() {
const styleCss = {
header: {
cursor: 'pointer',
backgroundColor: 'red',
color: '#fff',
padding: (this.state.minHeader) ? '10px' : '30px'
}
};
return (
<div className="App">
<p style={styleCss.header} onClick={this.switchHeader.bind(this)}>这是一段文字,哈哈</p>
</div>
);
}
}

(2)引入css文件

  在该文件夹下使用import引入或者在index.html上面使用link引入

注:给html标签添加class属性需使用className

import './style/style.css' //创建的css文件

class App extends Component {
render() {
return (
<div>
<p className="blueColor">这是一段文字,哈哈</p>
</div>
);
}
}

(3)CSS模块化

  安装依赖 style-loader、css-loader

  babel-plugin-react-html-attrs(如果安装了这个插件,className 可以直接写成 class)

  优点:

    • 所有的样式都是local的,解决了命名冲突和全局污染的问题
    • class名生成规则灵活,可以此来压缩class名
    • 只需引入组件的JS就能搞定组件的所有JS和CSS
npm install style-loader css-loader babel-plugin-react-html-attrs --save
render() {
var colorCss = require('./style/style.css')
return (
<div className="App">
<p className={colorCss.blueColor}></p>
<p >这是一段文字,哈哈</p>
</div>
);
}

(4)JSX样式与Css样式互转(内联样式模式)

  在线转换工具:https://staxmanade.com/CssToReact/

  render() {
const styleCss = {
header : {
color: 'red',
backgroundColor: '#ccc',
"padding-top": '20px',
paddingBottom: '20px'
}
} return (
<div className="App">
<p style={styleCss.header}>这是一段文字,哈哈</p>
</div>
);
}

React(八)样式及CSS模块化的更多相关文章

  1. react antd样式按需加载配置以及与css modules模块化的冲突问题

    通过create-react-app脚手架生成一个项目 然后运行npm run eject 把webpack的一些配置从react-scripts模块弹射出来, 方便自己手工增减,暴露出来的配置文件在 ...

  2. create-react-app创建react项目 css模块化处理

    用的css预处理器用sass,其他大同小异. 用create-react-app创建项目,执行npm run eject弹出配置文件(此操作不可逆): 配置sass,用的最新的CRA,webpack4 ...

  3. 在react中实现CSS模块化

    react中使用普通的css样式表会造成作用域的冲突,css定义的样式的作用域是全局,在Vue 中我们还可以使用scope来定义作用域,但是在react中并没有指令一说,所以只能另辟蹊径了.下面我将简 ...

  4. css模块化及CSS Modules使用详解

    什么是css模块化? 为了理解css模块化思想,我们首先了解下,什么是模块化,在百度百科上的解释是,在系统的结构中,模块是可组合.分解和更换的单元.模块化是一种处理复杂系统分解成为更好的可管理模块的方 ...

  5. vue/react/angular开发的css架构思考

    前端开发现在已经从传统的后端web多页面开发模式转向前端单页SPA开发模式,而vuejs/react/angular则是开发SPA非常优秀的前端框架.组件化开发由react最早提出,vuejs后发优势 ...

  6. React项目 - 几种CSS实践

    前言团队在使用react时,不断探索,使用了很多不同的css实现方式,此篇blog总结了,react项目中常见的几种css解决方案:inline-style/radium/style-componen ...

  7. 谈 CSS 模块化

    以前看过模块化的相关资料以及解释,对模块化有了一个表皮的了解,自己也做了一些相关的实践,由于接触到的项目交小,所以也没能更好的去体现和理解模块化,但总体还是有那么一些感悟,但是如果要说怎么才能算是好的 ...

  8. css模块化思想(一)--------命名是个技术活

    引子: 女孩子都喜欢买衣服,而我也不例外,奈何钱包太瘦,买不起高大上的定制,只能买撞衫率极高的休闲衣,不过对于我来说,我还是开心的,毕竟买衣服买的不仅是衣服,更是一种心情.在web前端的世界里,css ...

  9. 谈CSS模块化【封装-继承-多态】

    第一次听到“CSS模块化”这个词是在WebReBuild的第四届“重构人生”年会上,当时我还想,“哈,CSS也有模块化,我没听错吧?”事实上,我没听错,你也没看错,早就有CSS模块化这个概念了.之所以 ...

随机推荐

  1. TensorFlow GPU版本号与CUDA的对应产生的错误

    前言 感悟:cuda 8.0+cudnn 6.0+TensorFlow 1.3  cuda 9.0+cudnn 7.0+TensorFlow 1.7 python3.6.2+cuda 9.0+cudn ...

  2. TypeScript 错误property does not exist on type Object

    TypeScript 错误property does not exist on type Object 在TypeScript中如果按JS的方式去获取对象属性,有时会提示形如Property 'val ...

  3. iview 非 template/render 标签转换

    在 非 template/render情形下使用 iview,发现除了官方的一些需要注意的点外,还有一些其他需要注意的,这里记录下,防踩坑: 官方说明: 在非 template/render 模式下( ...

  4. 关于docker使用

    docker讲解:http://dockone.io/article/6051 os: ubuntu 16.04;docker version 18.06.1-ce; (1)查看docker版本:do ...

  5. .NET常用第三方库(包)总结(转)

    序列化与反序列化 JSON.NET应该是.NET平台上使用最为广泛的序列化/反序列化包了,ASP.NET和ASP.NET Core中默认序列化/反序列化包 Jil官网上说性能优于JSON.NET 文本 ...

  6. TV 丽音(NICAM)功能

    丽音意谓「接近即时的缩扩音频多路广播」 丽音使用数码技术,把电视台发送的两条音频讯号数码化后进行压缩,传送后再在接收机里扩大还原.数码化使用的是14位元 PCM,32千赫采样. 这种广播法可以播出优质 ...

  7. 多个 Github 网站账号 的配置

    账号的基本配置可参考上篇 紧跟上篇已将config 文件配置好了,下面是多账号的配置 一, 多账号也是在config里面配置 1.   首先:  在git 里面输入命令: ll      可以看到  ...

  8. JIRA API 对接

    系统要跟JIRA对接,将本系统数据发送给jira. 开始一头雾水怎么让数据传过去已什么形式存在,是存数据库呢还是怎么显示呢.研究半天发现其实只要将原数据作为json数据提供给jira接口,jira接口 ...

  9. 15 个 Eclipse 常用开发快捷键使用技巧

    15 个 Eclipse 常用开发快捷键使用技巧 1.alt+? 或 alt+/:自动补全代码或者提示代码 2.ctrl+o:快速outline视图 3.ctrl+shift+r:打开资源列表 4.c ...

  10. Bootstrap模态框垂直高度居中问题

    Bootstrap对话框改变其默认宽高,高度不会自适应居中.为解决这个问题,最好的方式是能够通过css来解决,试了几种网上的方案发现都不行.然后想到可以通过js来修正,什么时候修正最好?于是想到可以注 ...