Twitter bootstrap SASS以错误的顺序导入
我现在对SASS有意见。当使用Twitter bootstrap SASS以错误的顺序导入,twitter-bootstrap,sass,Twitter Bootstrap,Sass,我现在对SASS有意见。当使用@import语句时,它似乎没有确认我在导入某个文件之前导入了其他文件,导致一些变量没有被声明。我正在尝试对引导进行一些简单的更改。文件夹结构如下所示: @import url('https://fonts.googleapis.com/css?family=Open+Sans|Droid+Sans+Mono|Droid+Serif'); //Basic fonts @import "bower_components/bootstrap-sass/assets/st
@import
语句时,它似乎没有确认我在导入某个文件之前导入了其他文件,导致一些变量没有被声明。我正在尝试对引导进行一些简单的更改。文件夹结构如下所示:
@import url('https://fonts.googleapis.com/css?family=Open+Sans|Droid+Sans+Mono|Droid+Serif'); //Basic fonts
@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap"; //Bootstrap
@import "bower_components/font-awesome/scss/font-awesome"; //Font Awesome
//Bootstrap style changes
@import "variables";
@import "components/alerts";
@import "components/buttons";
@import "components/dropdowns";
@import "components/forms";
@import "components/labels";
@import "components/navbars";
@import "components/pagination";
@import "components/panels";
@import "components/progress";
Myapp.scss
是主要的入口点,如下所示:
@import url('https://fonts.googleapis.com/css?family=Open+Sans|Droid+Sans+Mono|Droid+Serif'); //Basic fonts
@import "bower_components/bootstrap-sass/assets/stylesheets/bootstrap"; //Bootstrap
@import "bower_components/font-awesome/scss/font-awesome"; //Font Awesome
//Bootstrap style changes
@import "variables";
@import "components/alerts";
@import "components/buttons";
@import "components/dropdowns";
@import "components/forms";
@import "components/labels";
@import "components/navbars";
@import "components/pagination";
@import "components/panels";
@import "components/progress";
问题是,变量文件根本没有导入,或者在加载其他文件之前没有导入。这是一件我似乎无法理解的相当奇怪的事情。非常感谢您提供的任何帮助:)如果要覆盖默认引导变量,需要在实际引导变量部分之前导入文件。这是因为他们所有的变量都有
!默认
标志。这意味着,如果一个变量已经分配给了,下次您尝试重新分配它时,它将忽略该变量(除非它在第一个位置没有分配变量)
例如,假设在bootstrap的\u variables.scss
部分中有:
$brand primary:#555555!违约代码>
…然后在以后导入的下一个文件中,您将其他内容分配给$brand primary
,它将被忽略-即使您指定了!再次使用默认
标志
所以,这就是为什么您需要在引导程序执行此操作之前覆盖变量
e、 g
和内部自定义/引导/变量:
`$brand-primary: #000000!default;`
引导变量是用声明的!默认
标志,这意味着覆盖这些变量的文件必须在Boostrap文件之前导入
什么是!默认值
do?具有此标志的赋值仅在变量之前未声明时生效。也就是说,您的覆盖文件确实会更改这些变量(除非您也使用!default
标志),但它会在Boostrap有机会实际使用这些变量后更改。例如:
/* bootstrap/scss/_variables.scss */
$alert-padding-y: .75rem !default;
$alert-padding-x: 1.25rem !default;
/* bootstrap/scss/_alert.scss */
.alert {
padding: $alert-padding-y $alert-padding-x; /* values are used */
}
/* your override */
$alert-padding-y: .5rem; /* values are changed, but a bit too late */
$alert-padding-x: 1rem;
“不起作用”并没有描述问题。您尚未显示您的预期结果,也未显示您将获得的结果。谢谢,这已解决此问题:)