gpt4 book ai didi

css - 在 less 中覆盖 twitter bootstrap,两次

转载 作者:行者123 更新时间:2023-12-02 05:00:16 25 4
gpt4 key购买 nike

我有一个包含两种样式的应用程序。两种样式都是独立开发的,然后合并到一个 less 文件中。两种样式都使用 twitter bootstrap,通过使用自定义 variables.less 文件覆盖它。目前,它看起来像这样:

.outer { @import "bootstrap.less"; @import "outer-variables.less"; @import "more-outer.less" }
.inner { @import "bootstrap.less"; @import "inner-variables.less"; @import "more-inner.less" }

内部/外部使用不同的字体、颜色、边距等,所有这些都在 variables.less 中自定义。当然,他们还使用许多其他规则。

这工作得很好,但会在我的 CSS 中生成 2 个完整的已编译 Bootstrap 副本。看到 CSS 和 Less 是级联的,我认为会有一些方法可以获得相同的效果,但只包含 bootstrap.less 一次。但是,我无法让它工作。谁知道怎么做?

这是我尝试过的:

@import "bootstrap.less"; // doesn't compile, missing vars
.outer { @import "outer-variables.less"; @import "more-outer.less" }
.inner { @import "inner-variables.less"; @import "more-inner.less" }

和:

@import "bootstrap.less";
@import "outer-variables.less";
@import "inner-variables.less"; // ends up using inner styles everywhere
.outer { @import "outer-variables.less"; @import "more-outer.less" }
.inner { @import "inner-variables.less"; @import "more-inner.less" }

都没有用。执行此操作的正确方法是什么?

最佳答案

我认为 @import-once(实际上是 LESS 1.4 中 @import 的默认值,但在以前的版本中不是)应该对您有所帮助。也许是这样的:

想法 #1

.outer { 
@import-once "bootstrap.less";
@import "outer-variables.less";
@import "more-outer.less"
}
.inner {
@import-once "bootstrap.less";
@import "inner-variables.less";
@import "more-inner.less"
}

应该不会重新导入整个 Bootstrap 框架,但是,因为您将它嵌套在选择器中,所以我对此可能是错误的。我没有专门测试过这个。

如果那行不通,那么也许……

想法 #2

 @import "bootstrap.less"; 
@import "outer-variables.less"; /* give bootstrap some initial variables */
.outer {
@import "more-outer.less" /* use initial variables */
}
.inner {
@import "inner-variables.less"; /* override initial variables inside inner */
@import "more-inner.less" /* use override variables */
}

关于css - 在 less 中覆盖 twitter bootstrap,两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17001962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com