【发布时间】:2012-08-01 00:09:51
【问题描述】:
这个问题几乎说明了一切。
例如,如果我使用Twitter Bootstrap,我可以在我自己的 SASS 样式表中定义继承自 Bootstrap 的 CSS 类的类吗?还是 SASS 中的继承仅适用于单个文件的范围内?
【问题讨论】:
标签: css inheritance stylesheet sass
这个问题几乎说明了一切。
例如,如果我使用Twitter Bootstrap,我可以在我自己的 SASS 样式表中定义继承自 Bootstrap 的 CSS 类的类吗?还是 SASS 中的继承仅适用于单个文件的范围内?
【问题讨论】:
标签: css inheritance stylesheet sass
据我所知,you have to use @import 的文件包含您要在 SASS 文件中使用的类,以便在该文件中使用它们。但是,我不是 SASS/SCSS 专家,所以有人可能知道另一种我不知道的远程使用它们的方法。
【讨论】:
**我可能弄错了,但如果我得到你想要做的事情,你不能在你想要扩展的元素内使用@extend .classname; 命令吗?当然,您应该只修改自己的代码以保持可更新性。
【讨论】:
是的!有可能。
如果您希望所有<button> 元素从Twitter Bootstrap's Default buttons 继承.btn 类
在您的styles.scss 文件中,您必须首先导入_bootstrap.scss:
@import "_bootstrap.scss";
然后在下面导入:
button { @extend .btn; }
【讨论】:
@extend 与引导程序/任何框架一起使用时要小心,因为它可能无法按预期工作。如本文所述,需要注意一些事项:stackoverflow.com/questions/30744625/…
bootstrap.css 导入styles.css 还是仅导入.btn?我的意思是在输出包中?如果它导入整个bootstrap.css,它将不必要地增加styles.css的大小。
正如公认的答案表明@import 可以做到这一点,但是@import 一直是deprecated by sass
Sass 团队不鼓励继续使用 @import 规则。 Sass 将在未来几年逐步淘汰它,并最终将其从语言中完全删除。更喜欢@use 规则。
@use 规则更适合现在使用,因为它不会污染导入(用户)模块的范围。不幸的是,在撰写本文时,使用规则仅在 Dart sass 中实现。
【讨论】: