Css 在多个SASS文件中使用引导会导致类重写问题。什么';什么是正确的SASS/引导结构?
我搜索了一段时间,但没有找到任何类似的问题,我非常惊讶 我正在使用SASS和Bootstrap安装Drupal。 我有一个简单的文件结构:Css 在多个SASS文件中使用引导会导致类重写问题。什么';什么是正确的SASS/引导结构?,css,twitter-bootstrap,sass,css-preprocessor,Css,Twitter Bootstrap,Sass,Css Preprocessor,我搜索了一段时间,但没有找到任何类似的问题,我非常惊讶 我正在使用SASS和Bootstrap安装Drupal。 我有一个简单的文件结构: base.scss-提供引导和变量导入 style.scss-导入项目的模块: style.scss @import "base"; @import "util"; @import "node"; @import "project"; @import "breadcrumb"; @import "menu"; 当然,所有这些.scs都存在并位于同一
- base.scss-提供引导和变量导入
- style.scss-导入项目的模块:
@import "base";
@import "util";
@import "node";
@import "project";
@import "breadcrumb";
@import "menu";
当然,所有这些.scs都存在并位于同一文件夹中
我的目标
- 我想在所有单独的文件中使用引导:节点、项目、面包屑和菜单,但只包含一次引导
@extend.breadcrumb在其中一个指定文件中,不使用导入“base”代码>,找不到选择器.breadcrumb李>
如果我导入“base”
在这n个单独的文件中,引导选择器包含n次。这会导致令人难以置信的混乱,并使对引导选择器的覆盖变得复杂。例如,我想更改引导的.navbar切换。如果我在node.scss
中执行此操作,它将被project.scss
中导入的默认引导选择器覆盖
问题
- 是否有一种正确的方法只包含一次引导并在中使用它
其他几个文件
- 我真的不明白为什么会存在问题1。SASS文件说:
Sass将获取您要导入的文件,并将其与您要导入的文件组合,以便您可以向web浏览器提供单个CSS文件
- 因此,如果我使用上面提到的导入引导而不在模块中导入引导的
style.scss
,为什么编译器无法解析任何引导类?对我来说,这听起来不像是合并进口。还是我错过了一些最基本的东西
提前谢谢
base.scss:
/*!
* Bootstrap v3.3.7 (http://getbootstrap.com)
* Copyright 2011-2016 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/../../bootstrap/stylesheets/bootstrap/blob/master/LICENSE)
*/
// Core variables and mixins
@import "variables";
@import "../../bootstrap/stylesheets/bootstrap/mixins";
// Reset and dependencies
@import "../../bootstrap/stylesheets/bootstrap/normalize";
@import "../../bootstrap/stylesheets/bootstrap/print";
@import "../../bootstrap/stylesheets/bootstrap/glyphicons";
// Core CSS
@import "../../bootstrap/stylesheets/bootstrap/scaffolding";
@import "../../bootstrap/stylesheets/bootstrap/type";
@import "../../bootstrap/stylesheets/bootstrap/code";
@import "../../bootstrap/stylesheets/bootstrap/grid";
@import "../../bootstrap/stylesheets/bootstrap/tables";
@import "../../bootstrap/stylesheets/bootstrap/forms";
@import "../../bootstrap/stylesheets/bootstrap/buttons";
// Components
@import "../../bootstrap/stylesheets/bootstrap/component-animations";
@import "../../bootstrap/stylesheets/bootstrap/dropdowns";
@import "../../bootstrap/stylesheets/bootstrap/button-groups";
@import "../../bootstrap/stylesheets/bootstrap/input-groups";
@import "../../bootstrap/stylesheets/bootstrap/navs";
@import "../../bootstrap/stylesheets/bootstrap/navbar";
@import "../../bootstrap/stylesheets/bootstrap/breadcrumbs";
// [...] other components
// Components w/ JavaScript
@import "../../bootstrap/stylesheets/bootstrap/modals";
@import "../../bootstrap/stylesheets/bootstrap/tooltip";
// [...]
// Utility classes
@import "../../bootstrap/stylesheets/bootstrap/utilities";
@import "../../bootstrap/stylesheets/bootstrap/responsive-utilities";
你用的是Bootstrap主题中的哪个
据我所知,他们推荐您的style.scs如下:
// Default variables.
@import 'default-variables';
// Bootstrap Framework.
@import '../bootstrap/assets/stylesheets/bootstrap';
// Base-theme overrides.
@import 'overrides';
所以我的猜测是,您必须先将变量和引导文件导入style.scs,然后再导入其他文件
然后,您可以添加/编辑变量和覆盖,还应该能够导入其他文件,如节点、菜单等。他们都应该能够访问引导选择器和变量
如果我误解了你的问题,我很抱歉。我个人使用的是一个较旧的带有引导的设置 我使用Drupal 8引导程序基本主题的“较少”初学者工具包,如中所述。我的引导文件和变量在base.scss中导入,base.scss由style.scss导入,后者导入所有模块。这些在没有导入语句的情况下不起作用。我还尝试在base.scss中导入一个新的“test.scss”(test.scss不导入base.scss)。结果:未找到选择器“.breadcrumb”。
在style.scss中,可以使用引导变量和选择器。只有导入的文件没有访问权限。嗯,听起来你的base.scss有问题。您是否尝试过将引导和变量直接导入style.scs而不使用基本文件,并检查变量和选择器是否在模块中工作?或者检查变量和选择器是否在base.scss中工作?还有,有什么理由不使用SASS初学者工具包用于D8吗?我不知道为什么我选择盲目地遵循教程中的说明,并实际复制较少的初学者工具包。。。但我不认为这是一个大问题,因为文件和概念应该几乎相同,因为我当前的设置是基于源文件构建的。如果您重新阅读我上面的“test.scss”场景,我已经尝试了您的建议,直接导入到style中(好吧,我在base.scss中导入了另一个模块,基本上是相同的),不幸的是没有成功。我将在帖子中包括base.scss。