如何使用React实现动态改变CSS样式的两种方法?

2026-04-08 15:491阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计424个文字,预计阅读时间需要2分钟。

如何使用React实现动态改变CSS样式的两种方法?

第一种:动态添加class,通过点击按钮让文字从隐藏到显示。

javascriptimport React, { Component, Fragment } from 'react';import './style.css';

class Demo extends Component { constructor(props) { super(props); this.state={ display: true }; }

render() { return ( {this.state.display ? Hello, World! : null} ); }

handleClick=()=> { this.setState(prevState=> ({ display: !prevState.display })); }}

如何使用React实现动态改变CSS样式的两种方法?

第一种:动态添加class,以点击按钮让文字显示隐藏为demo

import React, { Component, Fragment } from 'react'; import './style.css'; class Demo extends Component{ constructor(props) { super(props); this.state = { display: true } this.handleshow = this.handleshow.bind(this) this.handlehide = this.handlehide.bind(this) } render() { return ( <Fragment> {/*动态添加一个class来改变样式*/} <p className={this.state.display?"active":"active1"}>你是我的唯一</p> <button onClick={this.handlehide}>点击隐藏</button> <button onClick={this.handleshow}>点击显示</button> </Fragment> ) } handleshow() { this.setState({ display:true }) } handlehide() { this.setState({ display:false }) } } export default Demo;

css代码:

.active{ display: block; } .active1{ display: none; }

第二种:动态添加一个style,以点击按钮让文字显示隐藏为demo

import React, { Component, Fragment } from 'react'; class Demo extends Component{ constructor(props) { super(props); this.state = { display2: true } this.handleshow2 = this.handleshow2.bind(this) this.handlehide2 = this.handlehide2.bind(this) } render() { const display2 = { display:this.state.display2 ? 'block' : 'none' } return ( <Fragment> {/*动态添加一个style来改变样式*/} <p style={display2}>你是我的唯一</p> <button onClick={this.handlehide2}>点击隐藏2</button> <button onClick={this.handleshow2}>点击显示2</button> </Fragment> ) } handleshow2() { this.setState({ display2:true }) } handlehide2() { this.setState({ display2:false }) } } export default Demo;

总结:用class来改变css样式,可以写多个动态改变的css属性,看起不杂乱,而用style写的话,如果写多个css属性就会看起复杂。都是个人观点,不足请指出

到此这篇关于详解react的两种动态改变css样式的方法的文章就介绍到这了,更多相关react动态改变css样式内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

本文共计424个文字,预计阅读时间需要2分钟。

如何使用React实现动态改变CSS样式的两种方法?

第一种:动态添加class,通过点击按钮让文字从隐藏到显示。

javascriptimport React, { Component, Fragment } from 'react';import './style.css';

class Demo extends Component { constructor(props) { super(props); this.state={ display: true }; }

render() { return ( {this.state.display ? Hello, World! : null} ); }

handleClick=()=> { this.setState(prevState=> ({ display: !prevState.display })); }}

如何使用React实现动态改变CSS样式的两种方法?

第一种:动态添加class,以点击按钮让文字显示隐藏为demo

import React, { Component, Fragment } from 'react'; import './style.css'; class Demo extends Component{ constructor(props) { super(props); this.state = { display: true } this.handleshow = this.handleshow.bind(this) this.handlehide = this.handlehide.bind(this) } render() { return ( <Fragment> {/*动态添加一个class来改变样式*/} <p className={this.state.display?"active":"active1"}>你是我的唯一</p> <button onClick={this.handlehide}>点击隐藏</button> <button onClick={this.handleshow}>点击显示</button> </Fragment> ) } handleshow() { this.setState({ display:true }) } handlehide() { this.setState({ display:false }) } } export default Demo;

css代码:

.active{ display: block; } .active1{ display: none; }

第二种:动态添加一个style,以点击按钮让文字显示隐藏为demo

import React, { Component, Fragment } from 'react'; class Demo extends Component{ constructor(props) { super(props); this.state = { display2: true } this.handleshow2 = this.handleshow2.bind(this) this.handlehide2 = this.handlehide2.bind(this) } render() { const display2 = { display:this.state.display2 ? 'block' : 'none' } return ( <Fragment> {/*动态添加一个style来改变样式*/} <p style={display2}>你是我的唯一</p> <button onClick={this.handlehide2}>点击隐藏2</button> <button onClick={this.handleshow2}>点击显示2</button> </Fragment> ) } handleshow2() { this.setState({ display2:true }) } handlehide2() { this.setState({ display2:false }) } } export default Demo;

总结:用class来改变css样式,可以写多个动态改变的css属性,看起不杂乱,而用style写的话,如果写多个css属性就会看起复杂。都是个人观点,不足请指出

到此这篇关于详解react的两种动态改变css样式的方法的文章就介绍到这了,更多相关react动态改变css样式内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!