react 版权问题_react中样式冲突怎么解决

解决react中样式冲突的方法:首先打开相应的代码文件;然后将类名前加上模块名,如将整个组件的样式表CSS类名前加上组件名LoveVideo即可。

本教程操作环境:windows7系统、react17.0.1版本,该方法适用于所有品牌电脑。

解决react中样式冲突

react在开发中很多有很多需要注意的地方,换句话说就是有很多小坑需要踩一踩,这里分享一下我遇到的一个小坑,就是样式冲突,这是一个值得注意的问题,首先看一下例子:

有两个组件,一个叫做TestAComponent,另外一个叫做TestBComponent,在TestA组件中我写了一个背景色为蓝色的按钮,TestB中我写了一个背景色为红色的按钮。

TestAComponent 组件A:class TestAComponent extends React.Component {

render() {

return (

背景为蓝色

);

}

}

TestA css,背景设置的为蓝色:.box{

font-size: 20px;

margin: 10px;

padding: 20px;

background-color: blue;

border-radius: 10px;

}

TestB 组件B:class TestBComponent extends React.Component {

render() {

return (

背景为红色

);

}

}

TestB css,背景设置的为红色:.box{

font-size: 20px;

margin: 10px;

padding: 20px;

background-color: red;

border-radius: 10px;

}

代码写好之后npm start一下,这是会发现浏览器里显示的效果是这样的:

明明两个按钮设置了不同的背景色,为什么实际显示会这样呢?这是我们分析一下样式的设置,在标签中我们设置的class名为box,这是很多前端新人常用的命名方法,但是将不同组件的标签的class类名设置为相同的名字会造成样式冲突。

解决此问题方法:

将类名前加上模块名,如这个组件叫做LoveVideo,则整个组件的样式表CSS类名前加上组件名LoveVideo:

TestA 背景为蓝色

.LoveVideobox{

font-size: 20px;

margin: 10px;

padding: 20px;

background-color: blue;

border-radius: 10px;

}

修改好之后刷新一下页面,你就会发现样式冲突的问题就会很好的解决:

除了这样命名相同造成的冲突外,还有一种情况就是设置了一些全局的样式,比如:html{

background-color: #fff;

font-size: 14px;

}

*{

margin: 0;

padding: 0;

background-color: #fff;

font-size: 14px;

}

这样的全局通用的样式也切记不可设置的,因为使用react做一个单页应用只有一个页面,如果设置了全局样式则整个页面都会加载出此样式。

总结

1、单个组件类名加上组件名前缀,如组件名为LoveVideo,则所有的样式名前加上此前缀

2、不要设置html{}、*{}之类的全局通用样式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值