JSX设置CSS样式详解

1. 使用className设置样式(CSS的其他选择器也是同理)

(1)定义一个CSS文件style.css,和普通CSS一样定义class选择器

  1. .sty1{//和普通CSS一样定义class选择器
  2. background-color: red;
  3. color: white;
  4. font-size: 40px;
  5. }

(2)在JSX中导入编写好的CSS文件

import ‘./style.css’;

(3)JSX的调用

看背景颜色和文字颜色

说明:id选择器也是同理,由于React使用ES6编写代码,而ES6又有class的概念,所以为了不混淆class选择器在React中写成了className

可能你在看别人的代码的时候可能看到以下代码,这个是通过CSS Modules的写法

(1)定义一个CSS文件styleother.css,和普通CSS一样定义class选择器

  1. .sty2{
  2. background-color: red;
  3. color: white;
  4. font-size: 40px;
  5. }

(2)在JSX中导入编写好的CSS文件

  1. import StyleOther from './styleother.css';

(3)JSX的调用

  1. <div className={StyleOther.sty2}>看背景颜色和文字颜色</div>

说明:使用这种方式也是可以的,只是你需要修改你的webpack的config文件,将loader: “style!css”修改为loader: “style!css?modules”,在css后面加一个modules,不过这两种方式是不能同时存在的,因为加了modules,

详细资料:点击打开链接

2. 使用React的行内样式样式设置样式

(1)在JSX文件中定义样式变量,和定义普通的对象变量一样

  1. let backAndTextColor = {
  2. backgroundColor:'red',
  3. color:'white',
  4. fontSize:40
  5. };

(2)JSX的调用

  1. <div style={backAndTextColor}>看背景颜色和文字颜色</div>

当然你也可以不定义一个变量,直接写到JSX中,如下代码所示:

  1. <div style={{backgroundColor:'red',color:'white',fontSize:40}}>看背景颜色和文字颜色</div>

分析:style={},这里的{}里面放的是对象,不管你是定义一个对象然后使用,还是直接在里面写对象都是可以的,甚至可以写成下面的样子

  1. style={this.getInputStyles()}
  2. getInputStyles方法根据不同的状态返回不同的样式
  3. getInputStyles() {
  4. let styleObj;
  5. if (this.state.focused == true) {
  6. styleObj = {outlineStyle: 'none'};
  7. }
  8. return styleObj;
  9. }

3. JSX行内样式扩展

在 React 中,行内样式并不是以字符串的形式出现,而是通过一个特定的样式对象来指定。在这个对象中,key 值是用驼峰形式表示的样式名,而其对应的值则是样式值,通常来说这个值是个字符串,如果是数字就不是字符串,不需要引号。

  1. var divStyle = {
  2. color: 'white',
  3. backgroundImage: 'url(' + imgUrl + ')',
  4. WebkitTransition: 'all', // 注意这里的首字母'W'是大写
  5. msTransition: 'all' // 'ms'是唯一一个首字母需要小写的浏览器前缀
  6. };

另外浏览器前缀除了ms以外首字母应该大写,所以这里的WebkitTransition的W是大写的。

当为内联样式指定一个像素值得时候, React 会在你的数字后面自动加上 “px” , 所以下面这样的写法是有效的:

  1. let backAndTextColor = {
  2. backgroundColor:'red',
  3. color:'white',
  4. fontSize:40
  5. };

有时候你的确需要保持你的CSS属性的独立性。下面是不会自动加 “px” 后缀的 css 属性列表:

  1. columnCount
  2. fillOpacity
  3. flex
  4. flexGrow
  5. flexShrink
  6. fontWeight
  7. lineClamp
  8. lineHeight
  9. opacity
  10. order
  11. orphans
  12. strokeOpacity
  13. widows
  14. zIndex
  15. zoom

JSX设置CSS样式详解的更多相关文章

  1. 此博客使用的CSS样式详解!

    此博客使用的CSS样式详解! 页面使用的博客园模板为:LuxInteriorLight,可以在博客皮肤里找到. 页首屏蔽广告代码 <script>console.log("顶部标 ...

  2. Chrome开发工具Elements面板(编辑DOM和CSS样式)详解

    Element 译为“元素”,Element 面板可以让我们动态查看和编辑DOM节点和CSS样式表,并且立即生效,避免了频繁切换浏览器和编辑器的麻烦. 我们可以使用Element面板来查看源代码,它不 ...

  3. 部份css样式详解(附实际应用)

    本文的所有实例均基于博客园的页面定制. 所有表格内容来自W3CSchool. 页面背景(background) 博客开通之后,很多人最先做的事情一定是改页面的背景,换成一张图片或者换上一个自己喜欢的颜 ...

  4. sencha touch list css(样式) 详解

    /* *自定义列表页面 */ Ext.define('app.view.util.MyList', { alternateClassName: 'myList', extend: 'Ext.List' ...

  5. Ionic Css样式详解

    Header是固定在屏幕顶部的组件.可以包含如标题和左右的功能按钮.Sub Header同样是固定在顶部,只是是在Header的下面,就算没有写Header这个,Sub Header这个样式也会距离顶 ...

  6. CSS中的ul与li样式详解

    CSS中的ul与li样式详解ul和li列表是使用CSS布局页面时常用的元素.在CSS中,有专门控制列表表现的属性,常用的有list-style-type属性.list-style-image属性.li ...

  7. css控制UL LI 的样式详解

    用<ul>设置导航 <style> #menu ul {list-style:none;margin:0px;} #menu ul li {float:left;} </ ...

  8. css控制UL LI 的样式详解(推荐)

    代码如下: <div id="menu"> <ul> <li><a href="#">首页</a>& ...

  9. CSS选择器详解(伪类) 转 http://blog.csdn.net/Panda_m/article/details/50084699

    CSS选择器详解 之 伪类 伪类对大小写不敏感 结构伪类选择器 结构伪类是CSS3新增的类型选择器,利用DOM树实现元素过滤,通过文档结构的相互关系来匹配元素,可以减少class和id属性的定义,使文 ...

随机推荐

  1. Variable binding depth exceeds max-specpdl-size

    (setq max-specpdl-size 5) ; default is 1000, reduce the backtrace level (setq debug-on-error t) ; no ...

  2. 开启或停止website

    1.添加:Microsoft.Web.Administration 2.代码: static void Main(string[] args) { var server = new ServerMan ...

  3. python no module named builtins

    使用python2时出现此错误. 解决办法: pip install future

  4. JQuery 标签之间组合取值

    <body> <div></div> <input type="text" value="first-1" /> ...

  5. IIS中配置访问HTTPS

    1,新建网站,选中类型为 https,然后更改SSL证书为你配置的SSL证书, 对于SSL证书的配置是这样的 点开第二步,然后点击 创建自签名证书 确定以后点开网站看到有个SSL, 双击进去,再选中 ...

  6. SPOJ 1812 LCS2

    题解: 和上一题差不多 每个点记录前面的到这个点的最大值 初值赋为len[i] 然后注意要用子节点更新父节点 代码: #include <bits/stdc++.h> #define ll ...

  7. Redis主从实战

    为了提升redis高可用性,除了备份redis dump数据之外,还需要创建redis主从架构,可以利用从将数据库持久化,(我们所说的数据持久化将是将数据保存到写磁盘上,保证不会因为断电等因素丢失数据 ...

  8. 如何查找物理cpu,cpu核心和逻辑cpu的数量

    环境 Red Hat Enterprise Linux 4 Red Hat Enterprise Linux 5 Red Hat Enterprise Linux 6 Red Hat Enterpri ...

  9. lvs-dr

    第5节  dr模型 在rs上配置 :rip  和vip   vip定义在lo别名上 Director 上配置:vip  和dip 都只需要一块网卡  网卡都桥接 Vip: 192.168.0.105 ...

  10. Codeforces 868F Yet Another Minimization Problem 决策单调性 (看题解)

    Yet Another Minimization Problem dp方程我们很容易能得出, f[ i ] = min(g[ j ] + w( j + 1, i )). 然后感觉就根本不能优化. 然后 ...