如何覆盖导入的 scss 文件中的样式
How to override style in imported scss file
我的 Jekyll 博客的主题在 minima.scss
中有一个 scss 文件,其语法相关样式如下:
.highlight {
background: #fff;
@extend %vertical-rhythm;
.highlighter-rouge & {
background: #eef;
}
.err { color: #a61717; background-color: #e3d2d2 } // Error
// more stuff
我只想覆盖嵌套的 .highlight -> .err
样式,但我不想将 color 和 bg-color 属性设置为任何特定的值,只是默认值。比如,我希望它好像 .err
样式从来没有被定义过一样。
我在 main.scss
中使用 minima.scss
文件(这是页面中包含的实际文件),如下所示:
@import "minima";
.highlight {
.err { ???? }
}
这使得添加样式变得容易,扩展具有新属性的样式,并且覆盖变得容易 样式的特定属性(因为我猜第二次提到的优先),但是我如何 "delete" 样式或元素?
@import "minima";
.highlight {
.err {
color: unset !important;
background-color: unset !important;
}
}
应该可以解决问题。您可以阅读有关 "unset" and "!important".
的更多信息
将颜色设置为 inherit
将使其采用父元素颜色,在本例中看起来是白色
标记为正确的答案根本不是推荐的方式。事实上,这是一种覆盖样式的糟糕方法。
正确的做法:
@import "minima";
.highlight {
&.err {
color: unset;
background-color: unset;
}
}
HTML:
<div class="highlight err"></div>
我的 Jekyll 博客的主题在 minima.scss
中有一个 scss 文件,其语法相关样式如下:
.highlight {
background: #fff;
@extend %vertical-rhythm;
.highlighter-rouge & {
background: #eef;
}
.err { color: #a61717; background-color: #e3d2d2 } // Error
// more stuff
我只想覆盖嵌套的 .highlight -> .err
样式,但我不想将 color 和 bg-color 属性设置为任何特定的值,只是默认值。比如,我希望它好像 .err
样式从来没有被定义过一样。
我在 main.scss
中使用 minima.scss
文件(这是页面中包含的实际文件),如下所示:
@import "minima";
.highlight {
.err { ???? }
}
这使得添加样式变得容易,扩展具有新属性的样式,并且覆盖变得容易 样式的特定属性(因为我猜第二次提到的优先),但是我如何 "delete" 样式或元素?
@import "minima";
.highlight {
.err {
color: unset !important;
background-color: unset !important;
}
}
应该可以解决问题。您可以阅读有关 "unset" and "!important".
的更多信息将颜色设置为 inherit
将使其采用父元素颜色,在本例中看起来是白色
标记为正确的答案根本不是推荐的方式。事实上,这是一种覆盖样式的糟糕方法。
正确的做法:
@import "minima";
.highlight {
&.err {
color: unset;
background-color: unset;
}
}
HTML:
<div class="highlight err"></div>