.scss 文件中的样式未应用
我有一个 React 应用程序并使用 .scss
文件进行样式设置。
我的 index.js 看起来像这样:
import './App.scss';
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render(
<React.StrictMode>
<App/>
</React.StrictMode>,
document.getElementById('root')
);
我的 App.scss
看起来像这样:
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
height: 100%;
}
body,
:global(#root) {
min-height: 100%;
color: var(--primary-font-color);
font-family: "Open Sans", sans-serif;
font-weight: 400;
font-size: 18px;
line-height: 22px;
}
h1 {
color: var(--primary-font-color);
font-size: 32px;
font-weight: 600;
line-height: 36px;
}
:root {
/*Colors */
--primary-color: #f6f5f2;
}
现在我的问题是除了 *,*::before,*::after
和 :root
不适用。 在浏览器控制台中,我可以看到使用了 App.scss
并应用了 *,*::before,*::after
样式。此外,来自 :root
的所有变量都可以在那里找到。
我想使用 App.scss
文件作为全局样式,但我发现应用它们的唯一方法是使用 @import("App.scss")
在component.module.scss
。将 App.scss
导入到每个模块会导致与导入一样多的重复项。这是处理 scss
样式的预期方法吗?
I have a react app and use .scss
files for styling.
My index.js looks like this:
import './App.scss';
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render(
<React.StrictMode>
<App/>
</React.StrictMode>,
document.getElementById('root')
);
My App.scss
looks like this:
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
height: 100%;
}
body,
:global(#root) {
min-height: 100%;
color: var(--primary-font-color);
font-family: "Open Sans", sans-serif;
font-weight: 400;
font-size: 18px;
line-height: 22px;
}
h1 {
color: var(--primary-font-color);
font-size: 32px;
font-weight: 600;
line-height: 36px;
}
:root {
/*Colors */
--primary-color: #f6f5f2;
}
Now my problem is that all the styles apart from *,*::before,*::after
and :root
are not applied.
In the browser console I can see that the App.scss
is used and the *,*::before,*::after
styles are applied. Also all vars from :root
can be found there.
I want to use the App.scss
file for global styles, but the only way I found to apply them is with an @import("App.scss")
in a component.module.scss
. Importing the App.scss
to every module results in as many duplicates as imports. Is this the intended way to handle scss
styles?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
今天不建议将 Sass 用于全局样式,因为正如他们所写的 ->它可以生成比您想要的更多的文件 ->效果是你的性能更差。
我们可以在他们的主页上阅读这些信息,
我建议你使用一次简单的 CSS 文件作为变量、全局样式,然后你可以轻松地重用它们,如果你想作为开发人员使用 Sass,那么就继续其余造型
最好!
Sass is not recommended to use today for global styles, because as they wrote -> it can generate more files than you want -> effect is that you have worse performance
This information we can read on their main page
I recommend you use once simple CSS file for variables, global styles then easily you can reuse them and if you wanna use Sass as a developer then go-ahead for the rest of styling
Best!
例如,您可以执行以下操作
App.css:
然后:
Login.scss
当然这只是示例。
For example what you can do
App.css:
And then:
Login.scss
Of course this is only example.
我找到了解决方案:
看起来是
:global(#root)
导致了问题。删除它会应用其他样式,无论它们是在.scss
还是.css
文件中。I found the a solution:
Looks like it was the
:global(#root)
which caused the problem. Removing it makes the other styles applied no matter if they are in a.scss
or.css
file.