JSX设置CSS样式详解

摘要:
在此对象中,键值是驼峰形式的样式名称,其对应的值是样式值。一般来说,该值是一个字符串。如果是数字,则不是字符串,并且不需要引号。VardivStyle={color:“white”,backgroundImage:“url”,WebkitTransition:“all”,//注意,这里的第一个字母“W”是大写的msTransition:“all”//“ms”是唯一的小写浏览器前缀};此外,浏览器前缀应大写(ms除外),因此WebkitTransition的W在此大写。

JSX设置CSS样式详解

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

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

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

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

import ‘./style.css’;

(3)JSX的调用

看背景颜色和文字颜色

说明:id选择器也是同理,由于React使用ES6编写代码,而ES6又有class的概念,所以为了不混淆class选择器在React中写成了className
可能你在看别人的代码的时候可能看到以下代码,这个是通过CSS Modules的写法
(1)定义一个CSS文件styleother.css,和普通CSS一样定义class选择器

    .sty2{
        background-color: red;
        color: white;
        font-size: 40px;
    }

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

import StyleOther from  './styleother.css';

(3)JSX的调用

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

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

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

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

    let backAndTextColor = {
        backgroundColor:'red',
        color:'white',
        fontSize:40
    };

(2)JSX的调用

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

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

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

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

    style={this.getInputStyles()}
    getInputStyles方法根据不同的状态返回不同的样式
    getInputStyles() {
        let styleObj;
        if (this.state.focused == true) {
            styleObj = {outlineStyle: 'none'};
        }
        return styleObj;
    }

3. JSX行内样式扩展

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

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

另外浏览器前缀除了ms以外首字母应该大写,所以这里的WebkitTransition的W是大写的。
当为内联样式指定一个像素值得时候, React 会在你的数字后面自动加上 “px” , 所以下面这样的写法是有效的:

    let backAndTextColor = {
        backgroundColor:'red',
        color:'white',
        fontSize:40
    };

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

columnCount
fillOpacity
flex
flexGrow
flexShrink
fontWeight
lineClamp
lineHeight
opacity
order
orphans
strokeOpacity
widows
zIndex
zoom

免责声明:文章转载自《JSX设置CSS样式详解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Win7下怎么设置让远程桌面连接记住密码下次登录不需再输入nginx配置https,重定向后https变成了http下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CSS布局:水平居中

CSS布局之元素水平居中 本文将依次介绍在不同条件下实现水平居中的多种方法及简单原理 Tip:下文中说的适用场景只是举了几个简单的例子方便读者理解。实际应用场景太复杂,生搬硬套容易出错。最重要的是掌握各种方法能够实现居中的原理。只要掌握了原理,那么不管问题怎么变都可以根据自己的理解选择合适的方法。 一、使用 text-align: center 1.原理...

前端规范标准-CSS

一、CSS样式命名规范 建议:用字母、“_”(下划线)、“-”号、数字组成,必须以字母开头,不能以数字开头。为了开发后样式名管理方便,大家请用有意义的单词或缩写组合来命名,让同事一看 就明白这样式大概是哪一块的,这样就节省了查找样式的时间,例如: 头部样式用header,头部左边,可以用header_left或headerLeft,还有如果是列结构的可以这...

利用CSS变量实现炫酷的悬浮效果

最近,我从 Grover网站 上发现以一个好玩儿的悬停动画,这个动画是将鼠标移动到订阅按钮上移动光标,会跟随光标实现相应的彩色渐变。 这个想法很简单,但是它能使这个按钮脱颖而出,人们一下子就注意到它了,增加了点击的概率。   怎样才能达到这个效果,使我们的网站脱颖而出呢?其实,它并不像我们想象的那么难! 追踪位置 我们要做的第一件事就是获取到鼠标的位置。...

react 简单搭建

1.新建一个文件夹 2.执行npm init 3.整理新建工程目录结构,包含必要文件index.html 和 index.js 4.安装react 、react-dom 5. 安装webpack(穿件webpack.config.js文件) npm install --save-dev webpack 6.安装Babel编译器(创建babel.confi...

浏览器兼容问题的解决方案

对于前端开发良好的浏览器兼容必不可少,总结一下遇到浏览器兼容问题的解决办法。     1、保证浏览器默认css样式一致;     2、书写规范的css,然后在不同的浏览器下测试,针对不同的bug,用适当的方式解决。如:css Hack,     3、使用好的前端架构,通过第三方控件兼容浏览器;     4、多学习、多积累、多google。       一、...

CSS样式选择器

CSS样式选择器 一.基本选择器 类选择器 .name{} ID选择器 #name{} 元素选择器 name{} 通配符选择器(编译不通过) *{} 包含选择器 p c{}:parent下所有的同一名字的child 子元素选择器 p>c{}:parent下一层所有的同一名字的child 邻近兄弟元素选择器 c1+c2{}:同一层级中与child1相邻...