react中样式冲突怎么解决
解决react中样式冲突的方法:首先打开相应的代码文件;然后将类名前加上模块名,如将整个组件的样式表CSS类名前加上组件名LoveVideo即可。
本教程操作环境:windows7系统、react17.0.1版本、thinkpad t480电脑。
推荐:《javascript基础教程》
解决react中样式冲突
react在开发中很多有很多需要注意的地方,换句话说就是有很多小坑需要踩一踩,这里分享一下我遇到的一个小坑,就是样式冲突,这是一个值得注意的问题,首先看一下例子:
有两个组件,一个叫做TestAComponent,另外一个叫做TestBComponent,在TestA组件中我写了一个背景色为蓝色的按钮,TestB中我写了一个背景色为红色的按钮。
TestAComponent 组件A:
class TestAComponent extends React.Component { render() { return ( <div> <button className="box">背景为蓝色</button> </div> ); } }
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 ( <div> <button className="box">背景为红色</button> </div> ); } }
TestB css,背景设置的为红色:
.box{ font-size: 20px; margin: 10px; padding: 20px; background-color: red; border-radius: 10px; }
代码写好之后npm start一下,这是会发现浏览器里显示的效果是这样的:
明明两个按钮设置了不同的背景色,为什么实际显示会这样呢?这是我们分析一下样式的设置,在标签中我们设置的class名为box,这是很多前端新人常用的命名方法,但是将不同组件的标签的class类名设置为相同的名字会造成样式冲突。
解决此问题方法:
将类名前加上模块名,如这个组件叫做LoveVideo,则整个组件的样式表CSS类名前加上组件名LoveVideo:
<div> <button className="LoveVideobox">TestA 背景为蓝色</button> </div> .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{}、*{}之类的全局通用样式
以上就是react中样式冲突怎么解决的详细内容,更多请关注其它相关文章!
上一篇: react中图片如何引用
下一篇: php怎么删除txt里指定行
推荐阅读
-
Bootstrap.css与layDate日期选择样式起冲突的解决办法
-
求php中的include()与自定义函数的优先级,该怎么解决
-
不知大家遇到过这种问题么,一个层宽度设为100%,并设置背景图片,在浏览器中浏览,缩小窗口到滚动条出现,然后拖动滚动条到右侧,右侧的区域变成空白,怎么解决?_html/css_WEB-ITnose
-
win10系统中Windows Defender自动删除下载的文件该怎么解决?
-
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
-
php导出excel中,若数据库一列内容中存在换行,则在excel中对应换成多行,怎么解决
-
react中图片怎么引用
-
react怎么添加css样式
-
IOS中多手势之间的冲突和解决办法
-
iOS 约束冲突怎么解决