zoukankan      html  css  js  c++  java
  • React(八)样式及CSS模块化

    (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>
        );
      }
  • 相关阅读:
    ORACLE通过netca配置监听遇到 TNS04415错误
    图说计算机编程简史
    关于在VS2008以下版本的MFC程序使用VS 2008 FeaturePack出现内存泄露的理解
    对话框的OnPaint函数的两种写法的区别
    Hibernate 3.6.0 Beta1
    Hibernate 3.6.0 Beta1
    Maven 与 Checkstyle
    NetBeans 时事通讯(刊号 # 110 Jul 21, 2010)
    NetBeans 时事通讯(刊号 # 111 Jul 28, 2010)
    教育哲学的碰撞
  • 原文地址:https://www.cnblogs.com/yulingjia/p/9723101.html
Copyright © 2011-2022 走看看