react怎么添加css样式

青灯夜游
青灯夜游原创
2023-01-04 09:37:492681浏览

添加方法:1、使用“style={{样式代码}}”在组件内部定义css样式;2、先创建style样式对象,然后在render函数的组件中使用“style={{对象}”语句引用;3、使用“import 'css文件路径'”引入外部css文件。

本教程操作环境:windows7系统、react16版本,Dell G3电脑。

相关教程推荐:React视频教程

相对于html中引用css的三种方法,react中也有三种方法,一一相对:

1、行内样式:直接在组件内部定义

行内样式是一种最基本的写法,也就是我们最开始学HTML时写的内联样式那样,在项目中可能会比较少用到

在JSX中的用法:

class App extends React.Component {
  // ...
  render() {
    return (
      <div style={{ background: '#eee', width: '200px', height: '200px'}}>
        <p style= {{color:'red', fontSize:'40px'}}>Second Way!</p>
      </div>
    )
  }
}

需要注意的是,这里的css样式名采用驼峰命名法:如font-size →fontSize,并且你需要将CSS属性放在双大括号之间。为什么要用两个大括号?因为在JSX中渲染的JS表达式,它们必须被放在一对大括号里,{style}可以视为一个JS对象。所以第一对大括号正是将JS表达式放入JSX解析,里面的那对大括号则创建了一个style对象实例,所以在这里style是作为一个对象传入组件

2、声明样式:

声明样式其实是行内样式的一种改进写法,在render函数外部创建style对象,然后传递给组件,让css与标签分离,但实际上样式多了的话还是不太美观

class App extends React.Component {
 
//...
 
 const style1={    
      background:'#eee',
      width:'200px',
      height:'200px'
    }
 
  const style2={    
      color:'red',
      fontSize:'40px'
    }
 
  render() {
    return (
      <div style={style1}>
        <p style= {style2}>Second Way!</p>
      </div>
    )
  }
}

注意这里实用的还是驼峰命名法,其次因为已经在外部声明了style对象,所以在JSX中使用的时候只需要一个大括号{//..}

3、引入样式:引入外部的css文件,外部的css文件就是普通的css,在组件js中的import语句后面使用如下语句。

引入样式就是将CSS文件写下外部,在引入使用,这种普通的引入样式实际上会有一定的问题,我们先看用法,再分析问题

用法:

css 文件

.person{
    width: 60%;
    margin:16px auto;
    border: 1px solid #eee;
    box-shadow: 0 2px 3px #ccc;
    padding:16px;
    text-align: center;
}

js文件

import React from 'react';
import './Person.css';
class App extends React.Component {
 
  //....  
 
  render() {
 
    return (
      <div className='person'>
        <p>person:Hello world</p>
      </div> 
    )
  }
}
 
export default App;

结果展示:

1.png

问题:

因为CSS的规则都是全局的,任何一个组件的样式规则,都对整个页面有效,这可能会导致大量的冲突。也就是说如果我有两个css文件,它们的中的一些样式名是一样的,那么就会被覆盖,简单的解决办法就是将样式的命名变得复杂且不重复,但这样样式多了也很难避免重复,且命名也不会太好看。

更多编程相关知识,请访问:编程教学!!

以上就是react怎么添加css样式的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。