React 使用 CSS 样式

简介: 10月更文挑战第12天

在 React 应用程序中使用 CSS 有多种方法。

以下是一些常见的方式以及如何在 React 中实现这些方法的详细说明。

内联样式

在 React 中直接在元素内使用 CSS 样式是通过内联样式来实现的。

内联样式是将 CSS 样式直接作为一个对象传递给元素的 style 属性。每个样式属性都以驼峰命名法表示,而不是传统的 CSS 属性名称。

直接在元素内部使用:

实例

import React from 'react';

import ReactDOM from 'react-dom/client';


const Header = () => {

 return (

   <>

     <h1 style={{color: "red"}}>Hello Style!</h1>

     <p>Add a little style!</p>

   </>

 );

}


const root = ReactDOM.createRoot(document.getElementById('root'));

root.render(<Header />);

您还可以创建一个具有样式信息的对象,并在样式属性中引用它:

实例

import React from 'react';

import ReactDOM from 'react-dom';


const MyComponent = () => {

 // 定义内联样式对象

 const containerStyle = {

   padding: '20px',

   backgroundColor: '#f0f0f0'

 };


 const titleStyle = {

   fontSize: '24px',

   color: '#333'

 };


 return (

   <div style={containerStyle}>

     <h1 style={titleStyle}>Hello, world!</h1>

   </div>

 );

};


const root = ReactDOM.createRoot(document.getElementById('root'));

root.render(<MyComponent />);

在上面的示例中,containerStyle 和 titleStyle 是两个内联样式对象,分别应用于 div 和 h1 元素。以下是关键点:

  • 使用驼峰命名法表示 CSS 属性(例如,backgroundColor 而不是 background-color)。
  • 所有样式属性值都作为字符串传递(除了数字值可以直接使用,React 会自动添加单位)。

内联样式还可以根据组件的状态动态变化:

实例

import React, { useState } from 'react';

import ReactDOM from 'react-dom';


const MyComponent = () => {

 const [isHighlighted, setIsHighlighted] = useState(false);


 const containerStyle = {

   padding: '20px',

   backgroundColor: isHighlighted ? '#ffff99' : '#f0f0f0'

 };


 const titleStyle = {

   fontSize: '24px',

   color: '#333'

 };


 return (

   <div style={containerStyle}>

     <h1 style={titleStyle}>Hello, world!</h1>

     <button onClick={() => setIsHighlighted(!isHighlighted)}>

       Toggle Highlight

     </button>

   </div>

 );

};


const root = ReactDOM.createRoot(document.getElementById('root'));

root.render(<MyComponent />);

通过样式文件

您可以在单独的文件中编写 CSS 样式,只需使用 .css 文件扩展名保存该文件,然后将其导入您的应用程序即可。

创建一个名为 App.css 的样式文件,并加入以下 CSS 代码:

实例

body {

 background-color: #282c34;

 color: white;

 padding: 40px;

 font-family: Sans-Serif;

 text-align: center;

}

在的应用程序中导入样式 App.css:

实例

import React from 'react';

import ReactDOM from 'react-dom/client';

import './App.css';


const Header = () => {

 return (

   <>

     <h1>Hello Style!</h1>

     <p>Add a little style!.</p>

   </>

 );

}


const root = ReactDOM.createRoot(document.getElementById('root'));

root.render(<Header />);

CSS 模块

向应用程序添加样式的另一种方法是使用 CSS 模块。

CSS 模块是一种局部作用域的 CSS 文件命名规范,通过这种方法,CSS 类名和动画名称默认都作用于局部作用域。

CSS 模块对于放置在单独文件中的组件非常方便。

使用 .module.css 扩展名创建 CSS 模块,例如:MyComponent.module.css。

实例

/* MyComponent.module.css */

.container {

 padding: 20px;

 background-color: #f0f0f0;

}


.title {

 font-size: 24px;

 color: #333;

}

在应用中导入样式表:

实例

import React from 'react';

import ReactDOM from 'react-dom';

import styles from './MyComponent.module.css';


const MyComponent = () => {

 return (

   <div className={styles.container}>

     <h1 className={styles.title}>Hello, world!</h1>

   </div>

 );

};


const root = ReactDOM.createRoot(document.getElementById('root'));

root.render(<MyComponent />);

目录
相关文章
|
前端开发
create-react-app 如何使用 less/sass 和 react-css-modules?
本文详细介绍了在 create-react-app 项目中如何使用 less/sass 和 react-css-modules 来管理和应用样式。首先,通过安装相应依赖并配置 webpack 支持 less/sass;接着,介绍如何使用这些预处理器编写样式;最后,讲解了如何配置和使用 react-css-modules 实现样式的模块化管理,以及如何结合使用 less/sass 和 react-css-modules 提高开发效率和代码质量。
407 3
|
前端开发 JavaScript
React Tailwind CSS
10月更文挑战第12天
470 1
|
JavaScript 前端开发
react Or vue中引入animate.css
本文介绍了如何在React或Vue项目中引入animate.css库来使用动画效果,包括通过npm安装或在线链接引入,并展示了如何在React组件和Vue路由过渡中使用动画类。
364 0
|
前端开发 Java UED
JSF 面向组件开发究竟藏着何种奥秘?带你探寻可复用 UI 组件设计的神秘之路
【8月更文挑战第31天】在现代软件开发中,高效与可维护性至关重要。JavaServer Faces(JSF)框架通过其面向组件的开发模式,提供了构建复杂用户界面的强大工具,特别适用于设计可复用的 UI 组件。通过合理设计组件的功能与外观,可以显著提高开发效率并降低维护成本。本文以一个具体的 `MessageComponent` 示例展示了如何创建可复用的 JSF 组件,并介绍了如何在 JSF 页面中使用这些组件。结合其他技术如 PrimeFaces 和 Bootstrap,可以进一步丰富组件库,提升用户体验。
242 0
|
前端开发 JavaScript 开发者
【前端革新力】React与CSS-in-JS完美邂逅:从styled-components到emotion,全面解析样式管理新趋势的实战应用与优势剖析!
【8月更文挑战第31天】CSS-in-JS 作为一种新兴的样式管理方式,近年来在前端社区受到广泛关注。它将样式嵌入 JavaScript,实现了样式与逻辑的高度耦合,提升了开发效率并解决了全局样式污染等问题。本文通过具体代码示例,探讨 CSS-in-JS 在 React 开发中的应用,并分享实践心得。首先介绍了 CSS-in-JS 的基本概念,然后详细展示了如何使用 styled-components 和 emotion 这两个流行库创建样式化组件。
818 0
|
前端开发 JavaScript 开发者
【专栏:HTML与CSS前端技术趋势篇】前端框架(React/Vue/Angular)与HTML/CSS的结合使用
【4月更文挑战第30天】前端框架React、Vue和Angular助力UI开发,通过组件化、状态管理和虚拟DOM提升效率。这些框架与HTML/CSS结合,使用模板语法、样式管理及组件化思想。未来趋势包括框架简化、Web组件标准采用和CSS在框架中角色的演变。开发者需紧跟技术发展,掌握新工具,提升开发效能。
470 11
|
前端开发 JavaScript 安全
【亮剑】探讨了在React TypeScript应用中如何通过道具(props)传递CSS样式,以实现模块化、主题化和动态样式
【4月更文挑战第30天】本文探讨了在React TypeScript应用中如何通过道具(props)传递CSS样式,以实现模块化、主题化和动态样式。文章分为三部分:首先解释了样式传递的必要性,包括模块化、主题化和动态样式以及TypeScript集成。接着介绍了内联样式的基本用法和最佳实践,展示了一个使用内联样式自定义按钮颜色的例子。最后,讨论了使用CSS模块和TypeScript接口处理复杂样式的方案,强调了它们在组织和重用样式方面的优势。结合TypeScript,确保了样式的正确性和可维护性,为开发者提供了灵活的样式管理策略。
240 0
|
前端开发
【专栏】在 create-react-app 中集成 less/sass 预处理器和 react-css-modules 的方法
【4月更文挑战第29天】本文介绍了在 create-react-app 中集成 less/sass 预处理器和 react-css-modules 的方法。首先,通过 `npm` 安装 less 或 sass 依赖,然后修改 `config-overrides.js` 配置文件以支持 less/sass 编译。接着,详细阐述如何使用 less/sass 编写样式。再者,安装 react-css-modules 并配置 webpack,使能样式模块化。最后,展示了如何结合使用 less/sass 和 react-css-modules,以提升前端开发的效率和代码质量。
824 0
|
10月前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    421
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    330
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    313
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    206
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    426
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    609
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    788
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    216
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    635
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    386