我試圖在一個單獨的mixin文件中包含常規樣式/技巧,這些文件可以在需要時應用於任何項目。其中一些樣式需要多個元素才能一起工作才能工作。從mixins中合併選擇器
例如:
_mixins.scss
====================
@mixin footer_flush_bottom {
html {
height: 100%;
}
body {
min-height: 100%;
position: relative;
}
#footer {
position: absolute;
bottom: 0;
}
}
main.scss
====================
@import "mixins";
@include footer_flush_bottom;
html {
background-color: $bg;
//More stuff
}
body {
margin: 0 auto;
//More stuff
}
footer.scss
====================
#footer {
height: 40px;
}
因爲它是,該混入作品但生成的css分離主代碼的混入,即使當它們的選擇是相同的。當我開始包括更多這些內容時,這個缺點就是醜陋的CSS和更大的文件大小。
/* line 14, ../../sass/modules/_mixins.scss */
html {
height: 100%; }
/* line 18, ../../sass/modules/_mixins.scss */
body {
min-height: 100%;
position: relative; }
/* line 22, ../sass/modules/_mixins.scss */
#footer {
position: absolute;
bottom: 0; }
/* line 19, ../../sass/modules/main.scss */
html {
overflow-y: scroll; }
/* line 37, ../../sass/modules/main.scss */
body {
margin: 0 auto;
/* line 1, ../sass/modules/footer.scss */
#footer {
height: 40px;
有無論如何我可以做到這一點,使相同的選擇器可以合併?就像這樣:
/* line 19, ../../sass/modules/main.scss */
html {
height: 100%;
overflow-y: scroll; }
/* line 37, ../../sass/modules/main.scss */
body {
min-height: 100%;
position: relative;
margin: 0 auto;
/* line 1, ../sass/modules/footer.scss */
#footer {
position: absolute;
bottom: 0;
height: 40px;}
不幸的是,我不相信選擇可以合併。我不會太擔心,GZIP會壓縮文件大小。 – jbenjohnson