【问题标题】:Using @extend-Only to abstract Bootstrap selectors使用 @extend-Only 抽象 Bootstrap 选择器
【发布时间】:2014-06-10 09:46:00
【问题描述】:

我有几个样式使用 Sass 的 @extend 或 @include 来继承从 Bootstrap scss 文件导入的选择器的属性。

我想将所有 Bootstrap 选择器转换为 @extend-Only 占位符,因此我不必在最终的 .css 输出中包含任何原始 Bootstrap 选择器。目标是编写我自己的 css 类,仅在需要的地方从 Bootstrap 扩展。

例如,我希望有一个名为 .super-freaky-nav 的导航栏:

.super-freaky-nav{
    @extend .navbar;
    @extend .navbar-default;
    @extend .navbar-top-fixed;
}

理想情况下,我的最终 .css 输出不会包含对 .navbar、.navbar-default 或 .navbar-top-fixed 的单一引用。

有没有办法在不进入 _navbar.scss 文件并将所有选择器转换为 @extend-Only 类(%navbar、%navbar-default、%navbar-top-fixed 等)的情况下做到这一点? 谢谢!

【问题讨论】:

    标签: css twitter-bootstrap sass


    【解决方案1】:

    我正在探索的一个潜在实现使用custom importers in ruby-sassthe experimental importers feature in node-sass (2.0+) 对Bootstrap Sass 文件应用sed(查找和替换)转换,用% 语法替换前导类定义。不过,我过去的实验不多,而且我不知道如果没有全面的视觉测试套件,我可能会破坏什么。很高兴能得到一些帮助。

    【讨论】:

    【解决方案2】:

    没有。 Sass 无法满足您的要求。扩展普通类仍然是合理的需求,而 Sass 无法区分应该扩展或不应该扩展的类。

    【讨论】:

    • 我对此进行了更多研究,您在当前版本的 Sass 中是正确的。贡献者已经对添加这样的功能进行了一些讨论,但它已经在桌面上讨论了很长一段时间并且没有得到解决。目前,我只是创建自己的 Bootstrap 选择器的仅扩展占位符版本,由于许多原因,这确实不太理想。希望您有任何其他建议。谢谢!
    • 有这方面的消息吗?愿意做同样的事情。以下内容如何:包含并编译 application.css 中的所有内容,但不要从网站上引用此文件,而只引用另一个仅包含扩展内容的文件(例如 only_my_selectors.css)?所以客户端只会加载扩展的东西。
    猜你喜欢
    • 2014-07-07
    • 2016-06-09
    • 2013-07-10
    • 2012-06-27
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 2020-05-19
    • 2017-09-16
    相关资源
    最近更新 更多