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>
        );
      }
  • 相关阅读:
    WUSTOJ 1279: Wallace and His Pet(Java)
    WUSTOJ 1235: 计算矩阵的鞍点(Java)
    WUSTOJ 1277: 小吉吉读书(Java)
    WUSTOJ 1276: 峰峰不搞G(Java)
    WUSTOJ 1275: 男神的逆袭(Java)
    WUSTOJ 1274: 喂,这里是帅帅的LCM(Java)
    1269: 划分数(Java)
    1267: 展开字符串(Java)
    1266: gcd和lcm(Java)
    微型计算机接口技术与汇编语言课后答案
  • 原文地址:https://www.cnblogs.com/yulingjia/p/9723101.html
Copyright © 2011-2022 走看看