如何在React.js中使用两种不同的CSS框架?

如何在React.js中使用两种不同的CSS框架?,css,reactjs,Css,Reactjs,我在index.html中使用了两个CSS框架,如下所示 Materialize.css用于登录/登录,slick.css用于我网站的其余部分。 当框架定义为: Materialize.css: <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css"> <link rel="stylesheet" href="h

我在index.html中使用了两个CSS框架,如下所示 Materialize.css用于登录/登录,slick.css用于我网站的其余部分。 当框架定义为:

Materialize.css:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">

Slick.css

<link rel="stylesheet" type="text/css" charset="UTF-8" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick.min.css" /> 
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick-theme.min.css" />
<link rel="stylesheet" type="text/css" charset="UTF-8" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick.min.css" /> 
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick-theme.min.css" />

然后输出:

如果框架定义为:

Slick.css

<link rel="stylesheet" type="text/css" charset="UTF-8" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick.min.css" /> 
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick-theme.min.css" />
<link rel="stylesheet" type="text/css" charset="UTF-8" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick.min.css" /> 
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick-theme.min.css" />

Materialize.css:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">

然后输出:

但它在整个网站上实现了最后一个声明CSS框架。
如何实现不同的CSS框架?

在React、Angular和Vue等现代前端框架中使用全局样式的CSS/Javascript框架是可能的,但非常不鼓励

如果您愿意,您可以这样做,而且您不需要为他们的工作做任何特殊的事情。

假设您在网页中包含引导,并且希望使用按钮样式:

const SomeComponent=\u props=>(
嘿,我是纽扣
)
就这样。现在,如果两个全局CSS使用同一个类,会发生什么?比如“.btn”。在这种情况下,最后一个被包括在内的将获胜,而你[几乎]无法解决这个难题。这就是全局CSS的问题,也是现代项目不惜一切代价避免它的原因

这个冲突问题的解决方案是在JS解决方案中使用CSS,在JS解决方案中,我们将CSS导入到Javascript文件中,并且只使用我们需要的CSS选择器和类。这可能在某种程度上起作用,但它仍然是一种具有相关限制的黑客行为

实际上,如果vanilla JS库的级别非常低,并且您正在使用的特定前端框架(React,Angular)没有[good]适配器库,那么我们只强制将其与[React]集成


这就是答案中基于意见的部分的起点

对于材质设计和React,在React组件中使用材质设计实现更有意义,例如,与Materialize等材质设计的普通JS和CSS实现相比,它更容易与React集成

同样的方法也适用于Slick。谷歌“react carousel”,您将获得至少两个良好的carousel UI实现,您可以轻松地将其集成到react项目中