当前位置: 首页 > article >正文

React融合css

单纯使用tsx文件生成的页面比较单一,可以考虑结合css进行使用,需要说明的是,本人水平有限,仅对接触过的几种方式进行说明

内联样式

内联样式也有多种写法,此处仅列举两种比较简单的写法

写法一

import React from "react";
const in_background = {
    backgroundColor: 'green'
}
const Test: React.FC = () => {
    return (
        <div>
            <h4 style={in_background}>H4_HELLO</h4>
        </div>
    );
}
export default Test;

结果

写法二

import React from "react";
const Test: React.FC = () => {
    return (
        <div>
            <h1 style={{background: "red"}}>H1_HELLO</h1>
        </div>
    );
}
export default Test;

结果

全局CSS类

内联样式在页面的一侧,可以在全局样式中将其居中

Global.css

.cus_background {
    background-color: #646cff;
}
body{
    background-color: sandybrown;
    display: flex;
    justify-content: center;
    align-items: center;
}

Test.tsx

import React from "react";
import './Global.css';
const Test: React.FC = () => {
    return (
        <div>
            <h2 className={"cus_background"}>H2_HELLO</h2>
        </div>
    );
}
export default Test;

结果

模块化CSS类

Test.module.css

.cus_module_background {
    background-color: aqua;
}
body{
    background-color: #1a1a1a;
    display: flex;
    justify-content: center;
    align-items: center;
}

Test.tsx

import React from "react";
import my_styles from './Test.module.css';
const Test: React.FC = () => {
    return (
        <div>
            <h3 className={my_styles.cus_module_background}>H3_HELLO</h3>
        </div>
    );
}
export default Test;

结果

组合测试

这里有一个问题,如果全局CSS类和模块化CSS类同时引入并定义了body,那么哪个生效呢

代码

Test.tsx

import React from "react";
import './Global.css';
import my_styles from './Test.module.css';
const in_background = {
    backgroundColor: 'green'
}
const Test: React.FC = () => {
    return (
        <div style={{backgroundColor: "orange"}}>
            <h1 style={{background: "red"}}>H1_HELLO</h1>
            <h2 className={"cus_background"}>H2_HELLO</h2>
            <h3 className={my_styles.cus_module_background}>H3_HELLO</h3>
            <h4 style={in_background}>H4_HELLO</h4>
        </div>
    );
}
export default Test;

查看结果,发现是模块化生效

那么是否说明模块化优先呢,我们不妨再做一个测试,调整全局与模块化的引入顺序,会发现全局生效

相同的属性,后引入的会生效,那么不同的属性呢

当前生效的是全局,改变下模块化的代码

.cus_module_background {
    background-color: aqua;
}
body{
    background-color: #1a1a1a;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: background-color 5s;
}

body:hover {
    background-color: red; /* 鼠标悬停时变为橙色 */
}

结果

会发现模块化中差异的属性是生效的

优先级验证

个人理论基础有限,有兴趣的可以自行搜索下CSS的特异性和后来居上原则

参考资料

[1].react融合css代码


http://www.kler.cn/a/389820.html

相关文章:

  • Java学习--网络编程
  • 如何查看电脑关机时间
  • 5G 现网信令参数学习(3) - RrcSetup(1)
  • 机器视觉和计算机视觉的区别
  • Go语言中的`io.Pipe`:实现进程间通信的利器
  • SwiftUI开发教程系列 - 第1章:简介与环境配置
  • caozha-whois(域名Whois查询源码)
  • 模型解释新方向!浙大揭秘LLM隐层之间的知识流动!
  • 使用 FFmpeg 进行音视频转换的相关命令行参数解释
  • 解决C盘空间不足的三种方案
  • 使用LNMP搭建私有云存储
  • C/C++中指针
  • 【MATLAB源码-第209期】基于matlab的MSK调制解调仿真,对比三种解调方法的误码率分别是相干解调,1比特差分,2比特差分。
  • MSTP多实例生成树:避免单点设备故障,流量负载均衡。
  • SDL线程
  • 了解什么是数据库(简介)
  • 数据结构与算法:双指针之“最长连续不重复子序列” +位运算之“求二进制中第k个数字”、“求二进制表示”、“二进制中1的个数” +整数离散化
  • 在PyCharm中打包Python项目并将其运行到服务器上的方法
  • 15分钟学 Go 第 47 天 :并发进阶——深入了解Go语言的并发模型!
  • 【Go】-gRPC入门
  • gitlab ci/cd搭建及使用笔记
  • 高效工位管理:Spring Boot企业级系统
  • 【K8S系列 】在K8S集群怎么查看各个pod占用的资源大小与详细解决方案【已解决】
  • itextpdf打印A5的问题
  • 【一步步开发AI运动小程序】二十一、如果将AI运动项目配置持久化到后端?
  • 【非关系型数据库】【IOT设备】InfluxDB、TimescaleDB、Cassandra和MongoDB