在 NextJs 中,如何删除特定组件中 _app 中声明的全局样式?

Iva*_*van 8 javascript css css-modules next.js

我正在使用 NextJs,我正在使用 TailwindCSS,并且我的 globals.css 中有一堆额外的样式,这些样式按照您应该做的那样导入到顶层的 _app 中。我尝试将其移至“布局”组件中,但将其放回顶部时出现错误,因此我将其保留在那里。

问题就在这里。我有一个组件,我不需要任何 globals.css 样式,只需要一小组备用样式。有什么办法可以做到这一点吗?我想删除我被迫在顶层导入的所有废话,然后只需将特定的样式表应用于该组件。

小智 -1

实现此目的的一种方法是在 globals.css 样式中使用 not 选择器。

例如添加 className="no-global-styles" (对于不需要全局样式的组件)

然后使用 :not(.no-global-styles) 选择器附加全局样式选择

:not(.no-global-styles) > a {
     color: black;
     text-decoration: none;
     cursor: pointer;
}
Run Code Online (Sandbox Code Playgroud)

这将应用于除 '.no-global-styles' 类内的元素之外的所有 <a?> 元素,并且 '.no-global-styles' 内的 <a?> 将应用默认样式或下一个样式。我能想到的另一种方法是使用 !important 标志并覆盖 globals.css 样式。

(选择器链接)https://www.w3schools.com/cssref/css_selectors.asp

( :not() 技巧的链接)https://css-tricks.com/almanac/selectors/n/not/

我有一种感觉,这不是最好的方法,但如果您想忽略的样式很少,那么这种情况应该不是问题。