爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      React-样式使用

      首页 知识中心 软件开发 文章详情页

      React-样式使用

      2025-02-26 07:23:02 阅读次数:12

      css,module,react,src,样式,编译器

      常用css预编译器:

      sass、scss是一种 scss是sass的第三个版本 编译器发生了改变 node-sass dart-sass

      less

      stylus

      1、行内样式

      使用标签的style属性,JSX语法中style属性的值的为对象结构,css属性的名称为大驼峰,如果值为非数字则使用引号包裹

      import React, { Component } from 'react'
      ​
      export default class App extends Component {
        render() {
          return (
            // style行内样式
            <div
              style={{
                border: '1px solid #ccc',
                width: '25%',
                marginTop: 10,
                marginLeft: 10,
                display: 'flex',
                flexDirection:'column',
                alignItems:'center'
              }}
            >
              <div>名称:皮卡丘</div>
              <div>技能:十万伏特</div>
              <div>体态:黄色</div>
            </div>
          )
        }
      }
      ​

      2、使用className属性

      可以将样式进行抽离出来,并且可以进行复用。但是会存在样式污染的情况,也就是选择器名称不能够重名。

      .card {
        border: 1px solid #ccc;
        width: 25%;
        margin-top: 10px;
        margin-left: 10px;
        display: flex;
        flex-direction: column;
        align-items: center;
      }
      ​
      import React, { Component } from 'react'
      import './assets/styles/App.module.css'
      export default class App extends Component {
        render() {
          return (
            <div>
              <div className="card">
                <div>名称:皮卡丘</div>
                <div>技能:十万伏特</div>
                <div>体态:黄色</div>
              </div>
              <Child></Child>
            </div>
          )
        }
      }
      ​

      3、css module模块化

      底层脚手架(webpack)在加载样式文件时,通过module模块化,编译后,把css选择器相同的生成一个唯一的名称,这样就可以避免由于选择名称相同,导致样式的覆盖和污染了。

      vue中 <style scoped></style>

      src\assets\styles\Child.module.css

      .card {
        border: 1px solid red;
        width: 25%;
        margin-top: 10px;
        margin-left: 10px;
        display: flex;
        flex-direction: column;
        align-items: center;
      }
      ​

      src\assets\styles\App.module.css

      .card {
        border: 1px solid red;
        width: 25%;
        margin-top: 10px;
        margin-left: 10px;
        display: flex;
        flex-direction: column;
        align-items: center;
      }
      ​

      src\Child.jsx

      import React, { Component } from 'react'
      //module模块化css后  实际文件会当做一个对象加载进来
      import styles from './assets/styles/Child.module.css'
      export default class Child extends Component {
        render() {
          return <div className={styles.card}>Child</div>
        }
      }
      ​

      src\App.js

      import React, { Component } from 'react'
      import styles from './assets/styles/App.module.css'
      import Child from './Child'
      export default class App extends Component {
        render() {
          return (
            <div>
              {/* // style行内样式 */}
              <div className={styles.card}>
                <div>名称:皮卡丘</div>
                <div>技能:十万伏特</div>
                <div>体态:黄色</div>
              </div>
              <Child></Child>
            </div>
          )
        }
      }
      ​

      4、styled-components

      在react中为了能够使样式进行动态变化,需要在js中完成css的设置。css-in-js技术,在react社区中有多种样式编写的方案。

      styled-components是其中优秀方案之一,将样式同时编写在组件的jsx文件中,以达到编写和管理方便的情况。

      继承、变量等写法

      安装

      npm i styled-components

      src\App.js

      import React, { Component } from 'react'
      import Child from './Child'
      // 1、引入styled-components 样式库
      import styled from 'styled-components'
      // 2、创建一个组件容器 并编写样式
      const Card = styled.div`
        border: 1px solid #ccc;
        width: 25%;
        margin-top: 10px;
        margin-left: 10px;
        display: flex;
        flex-direction: column;
        align-items: center;
      `
      export default class App extends Component {
        render() {
          return (
            <div>
              {/* 3、将编写好的组件样式 进行套用 和组件标签的使用方式基本一致 */}
              <Card>
                <div>名称:皮卡丘</div>
                <div>技能:十万伏特</div>
                <div>体态:黄色</div>
              </Card>
              <Child></Child>
            </div>
          )
        }
      }
      ​

      样式继承和属性传递

      import React, { Component } from 'react'
      import styled from 'styled-components'
      const Title = styled.div`
        width: 200px;
        height: 100px;
        border: 1px solid black;
      `
      // 样式继承  将原有的样式进行复用  没有设置的复用  有设置的的以自身为准
      const Title1 = styled(Title)`
        height: 50px;
        color: red;
      `
      // 属性传递  变量使用
      const Color = styled.div`
        color: ${(props) => props.color || 'red'};
      `
      ​
      export default class App extends Component {
        render() {
          return (
            <div>
              App
              <Title>标题内容一</Title>
              <Title1>标题内容二</Title1>
              <Color>红色文字</Color>
              <Color color="green">绿色文字</Color>
            </div>
          )
        }
      }
      ​

      5、scss的使用

      scss是成熟、稳定的流行的css预编译处理器

      在react使用create-react-app脚手架中,内部已经将scss的样式编译配置完成,但是编译器的依赖需要自行安装。

      # 安装sass编译器
      
      npm i -D sass

      src\assets\styles\App.module.scss

      // 变量声明定义
      
      
      $pramiry-color: red;
      .item {
        display: flex;
        justify-content: space-between;
        padding: 5px;
        // scss嵌套写法
        > div:first-child {
          width: 30%;
        }
        > div:nth-child(2) {
          width: 60%;
          margin-left: 10px;
          display: flex;
          flex-direction: column;
          justify-content: space-between;
          > div:first-child {
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
          }
          > div:nth-child(2) {
            // 变量使用
            color: $pramiry-color;
          }
        }
      }
      ​

      src\App.js

      import React, { Component } from 'react'
      /****
       * scss
       * 选择器嵌套写法  变量的使用
       *
       *
       */
      import styled from './assets/styles/App.module.scss'
      export default class App extends Component {
        render() {
          return (
            <div className={styled.item}>
              <div>
                <img
                  src="http:///2021/0201/b63f2e50j00qntwfh0020c000hs00npg.jpg?imageView&thumbnail=140y88&quality=85"
                  alt=""
                />
              </div>
              <div>
                <div>被指偷拿半卷卫生纸 63岁女洗碗工服药自杀 酒店回应</div>
                <div>2021-02-02 10:00:51</div>
              </div>
            </div>
          )
        }
      }
      ​

      6、less的使用

      less支持浏览器和开发者服务器编译两种方式。

      默认react脚手架create-react-app默认只支持scss,如果使用less需要解构配置文件,并安装编译器和加载器进行使用

      src\assets\styles\App.module.less

      // 变量声明定义
      @pramiry-color: red;
      .item {
        display: flex;
        justify-content: space-between;
        padding: 5px;
        > div:first-child {
          width: 30%;
        }
        > div:nth-child(2) {
          width: 60%;
          margin-left: 10px;
          display: flex;
          flex-direction: column;
          justify-content: space-between;
          > div:first-child {
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
          }
          > div:nth-child(2) {
            // 变量使用
            color:@pramiry-color;
          }
        }
      }

      ①安装less的编译器和加载器

      npm i -D less less-loader

      ②解构配置文件

      npm run eject

      ③配置解析less文件

      config\webpack.config.js

      配置识别文件后缀、文件扩展名

      React-样式使用

      配置loader加载器调用对应的编译器解析编译文件中的语法

      //.............................
      /***配置less-loader 开始 */
                  {
                    test: lessRegex,
                    exclude: lessModuleRegex,
                    use: getStyleLoaders(
                      {
                        importLoaders: 3,
                        sourceMap: isEnvProduction
                          ? shouldUseSourceMap
                          : isEnvDevelopment,
                        modules: {
                          mode: 'icss'
                        }
                      },
                      'less-loader'
                    ),
                    // Don't consider CSS imports dead code even if the
                    // containing package claims to have no side effects.
                    // Remove this when webpack adds a warning or an error for this.
                    // See https:///webpack/webpack/issues/6571
                    sideEffects: true
                  },
                  // Adds support for CSS Modules, but using SASS
                  // using the extension .module.scss or .module.sass
                  {
                    test: lessModuleRegex,
                    use: getStyleLoaders(
                      {
                        importLoaders: 3,
                        sourceMap: isEnvProduction
                          ? shouldUseSourceMap
                          : isEnvDevelopment,
                        modules: {
                          mode: 'local',
                          getLocalIdent: getCSSModuleLocalIdent
                        }
                      },
                      'less-loader'
                    )
                  },
                  /***配置less-loader 结束*/
      //.............................

      内联样式(Inline Styles)

         import React from 'react';
      
         function MyComponent() {
           const customColor = '#ff0066';
           return (
             <div style={{
               color: customColor,
               fontSize: '18px',
               backgroundColor: 'lightgray',
               padding: '10px',
               borderRadius: '5px',
             }}>
               This is a styled component using inline styles.
             </div>
           );
         }
      
         export default MyComponent;

      在上述代码中,style 属性接收一个对象,其键是 CSS 属性名(驼峰式或全小写),值是相应的 CSS 属性值。这种方法可以利用 JavaScript 的表达式来实现动态样式计算。

      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://qingshan09.blog.csdn.net/article/details/137665045,作者:前端青山,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:【RDMA】RDMA SEND/WRITE编程实例(IBV Verbs )

      下一篇:【C++动态规划 分组背包】1155. 掷骰子等于目标和的方法数|1653

      相关文章

      2025-05-16 09:15:24

      模拟实现strcmp

      模拟实现strcmp

      2025-05-16 09:15:24
      gcc , 编译器 , 返回
      2025-05-14 10:03:05

      C++ 11新特性之语法甜点2

      C++ 11新特性之语法甜点2

      2025-05-14 10:03:05
      函数 , 初始化 , 基类 , 构造函数 , 编译器 , 语法
      2025-05-09 08:20:32

      STL:模版初阶 | STL简介

      STL:模版初阶 | STL简介

      2025-05-09 08:20:32
      STL , 函数 , 实例 , 模板 , 模版 , 类型 , 编译器
      2025-05-09 08:20:32

      C++:类与对象(2)

      C++:类与对象(2)                                                      

      2025-05-09 08:20:32
      函数 , 拷贝 , 构造函数 , 类型 , 编译器 , 运算符 , 重载
      2025-04-22 09:28:31

      零基础玩转C语言系列第五章——数组模块

      零基础玩转C语言系列第五章——数组模块

      2025-04-22 09:28:31
      下标 , 二维 , 数组 , 数组名 , 编译器
      2025-04-18 07:10:30

      浅谈babel原理

      Babel 的前身是 6to5,6to5 是 2014 年 发布的,主要功能是 就是 ES6 转成 ES5。后改名babel。

      2025-04-18 07:10:30
      module , 代码 , 创建
      2025-04-15 09:18:39

      初始函数模板和类模板

      函数模板是一个蓝图,它本身并不是函数,是编译器用使用方式产生特定具体类型函数的模具。所以其实模板就是将本来应该我们做的重复的事情交给了编译器

      2025-04-15 09:18:39
      函数 , 实例 , 模板 , 类型 , 编译器
      2025-04-11 07:16:05

      多module项目的springboot配置swagger

      多module项目的springboot配置swagger

      2025-04-11 07:16:05
      module , security , swagger , 分组 , 文档 , 注解 , 配置
      2025-04-01 10:28:07

      TypeScript之接口

      TypeScript之接口

      2025-04-01 10:28:07
      TypeScript , 代码 , 对象 , 属性 , 接口 , 类型 , 编译器
      2025-03-31 08:57:16

      将服务器传入的字段转成html渲染出来

      将服务器传入的字段转成html渲染出来

      2025-03-31 08:57:16
      html , 展示 , 文本 , 样式
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5255665

      查看更多

      最新文章

      模拟实现strcmp

      2025-05-16 09:15:24

      C++ 11新特性之语法甜点2

      2025-05-14 10:03:05

      STL:模版初阶 | STL简介

      2025-05-09 08:20:32

      C++:类与对象(2)

      2025-05-09 08:20:32

      零基础玩转C语言系列第五章——数组模块

      2025-04-22 09:28:31

      浅谈babel原理

      2025-04-18 07:10:30

      查看更多

      热门文章

      微信小程序:echarts层级太高,遮挡van-popup弹框组件

      2023-02-21 10:34:01

      (10)Qt对象模型

      2023-02-13 07:55:59

      less中的内置函数

      2023-05-17 07:03:00

      VsCode:Vue单文件格式化属性换行显示

      2024-06-27 09:20:52

      Python涨知识——__future__是什么?

      2023-02-27 10:10:19

      【Java技术指南】「编译器专题」重塑认识Java编译器的执行过程(常量优化机制)!

      2023-05-11 05:59:31

      查看更多

      热门标签

      java Java python 编程开发 代码 开发语言 算法 线程 Python html 数组 C++ 元素 javascript c++
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      Java中的即时编译与运行时优化

      简单搭建react开发环境

      Firebase 命令行工具

      如何使用 HTML 和 CSS 写一个登录界面

      Webapp答题之JavaScript篇

      html+css实战122-综合案例-小米产品-li

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号