美文网首页
React普通样式(className)和行内样式(LineSt

React普通样式(className)和行内样式(LineSt

作者: 木A木 | 来源:发表于2017-12-18 19:30 被阅读0次

由于最近工作需要,开始研究react,完全新人一个,看到网上好多文章,眼花缭乱,更多的是给我入门的帮助,也尝试写了一些简单的demo。

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

  • 定义一个CSS文件style.css,和普通CSS一样定义class选择器
    .sty1{//和普通CSS一样定义class选择器  
        background-color: red;  
        color: white;  
        font-size: 40px;  
    }  
  • 在JSX中导入编写好的CSS文件
    import './style.css';  
  • JSX的调用
    <div className="sty1">看背景颜色和文字颜色</div> 

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

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

  • 定义一个CSS文件styleother.css,和普通CSS一样定义class选择器
    .sty2{//和普通CSS一样定义class选择器  
        background-color: red;  
        color: white;  
        font-size: 40px;  
    }  
  • 在JSX中导入编写好的CSS文件
    import StyleOther from  './styleother.css';
  • JSX的调用
    <div className={StyleOther.sty2}>看背景颜色和文字颜色</div>

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

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

  • 在JSX文件中定义样式变量,和定义普通的对象变量一样
    let backAndTextColor = {  
        backgroundColor:'red',  
        color:'white',  
        fontSize:40  
    };  
  • 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. React行内样式扩展
在 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  
    };  

注释技巧:在React里注释不能用HTML的方式,那是木有用的。也不能直接用js的注释,那也是不行的。而是用大括号括起来,之后用/**/来注释,看起来是这样的

{/* 这是一个注释 */}

总结:通过看这篇文章能让我更多的了解React的CSS写法,此篇转载文章也会作为我个人的一个知识点备份

原文地址:React普通样式(className)和行内样式(LineStyle)多种设置样式设置详解

相关文章

  • React普通样式(className)和行内样式(LineSt

    由于最近工作需要,开始研究react,完全新人一个,看到网上好多文章,眼花缭乱,更多的是给我入门的帮助,也尝试写了...

  • react行内样式

    react的行内样式本质上是一个对象,比如官方文档的这个 如果打算直接写在标签上的话,更简单,不过就是看着比较多,...

  • react 行内样式

    style={this.state.join_show ? "height:88vh" : ""} this.se...

  • js css操作

    js css操作行内样式el.style.fontSize="18px"传统class改变el.className...

  • react动态添加样式:style和className

    在react开发过程中,如何动态向元素内添加样式style或className className动态添加可以实现...

  • css基础1

    使用css的方式 使用css的方式有3种,样式的优先权为:行内样式>内部样式>外部样式行内样式内部样式外部样式 行...

  • React组件中的DOM样式

    React组件中的DOM样式 一、行内、class、模块化 二、根据不同的条件添加不同的样式 安装classnam...

  • css选择器优先级

    内联样式:行内样式 style=""外联样式:选择器 !important>行内样式>id(#)选择器>类选择器...

  • 12-CSS引入方式

    一、 行内样式表(行内式引入) 行内样式表(内联样式表)是在元素标签内部的 style 属性中设定 CSS 样式。...

  • css层叠样式表

    三种书写方式 行内样式 内部样式 外部样式 任何一个网页元素都是矩形 行内样式 每一个元素都可以书写行内样式 st...

网友评论

      本文标题:React普通样式(className)和行内样式(LineSt

      本文链接:https://www.haomeiwen.com/subject/henmwxtx.html