我们可以嵌套不会通过 Gulp 添加到编译输出的整体大小的媒体查询 (SASS) 吗?

Posted

技术标签:

【中文标题】我们可以嵌套不会通过 Gulp 添加到编译输出的整体大小的媒体查询 (SASS) 吗?【英文标题】:Can we nest media queries (SASS) that doesn't add to the overall size of the compiled output via Gulp? 【发布时间】:2021-10-25 22:46:21 【问题描述】:

使用 Gulp:我们的想法是内联编写媒体查询并根据需要嵌套,但在编译的源代码中,它们嵌套在单个媒体查询下。关于目前是否可行的想法?

示例

.selector 
    background-color: #efefef;
    @media screen and (min-width: $break-tabletSmall)  
        background-color: #000;
    

.selector-2 
    background-color: #ddd;
    @media screen and (min-width: $break-tabletSmall)  
        background-color: #fff;
    

目前编译成这样:

.selector 
    background-color: #efefef;

@media screen and (min-width: $break-tabletSmall)  
    .selector 
        background-color: #000;
    

.selector-2 
    background-color: #ddd;

@media screen and (min-width: $break-tabletSmall)  
    .selector-2 
        background-color: #fff;
    

期望的结果:请注意,由于引用了单个媒体查询,因此大小会小一些。

.selector 
    background-color: #efefef;

.selector-2 
    background-color: #ddd;

@media screen and (min-width: $break-tabletSmall)  
    .selector 
        background-color: #000;
       
    .selector-2 
        background-color: #fff;
    

【问题讨论】:

【参考方案1】:

此issue in Sass Github 与此问题有关。你有这个:

不再计划这些优化。 Sass 尽其所能消除多余的空格并为值选择尽可能小的表示形式,但它的主要重点是成为最好的预处理语言,而不是最好的 CSS 压缩器。

所以实际上你应该使用 PostCSS 和 postcss-combine-media-query 插件。或者我发现了这个gulp plugin。我对 CSS 优化和压缩的建议是 PostCSS。

但如果你只想用 Sass 解决这个问题,你可以在上面链接的问题中使用输出缓冲作为said by heygrady。

【讨论】:

谢谢@Vahid。这将直接贡献!非常感谢您向我指出这些方向!

以上是关于我们可以嵌套不会通过 Gulp 添加到编译输出的整体大小的媒体查询 (SASS) 吗?的主要内容,如果未能解决你的问题,请参考以下文章

Gulp-sass 不会编译成 CSS

gulp.js 去除输出文件的相对路径

gulp是用来干什么的?(概念)

将 gulp-qunit 控制台输出输出到文件

BundlerMinifier和WebCompiler不会在构建时输出文件

Node环境配置及Gulp工具