因为每个前端工程师编写代码的风格都不太一样,所以Sass的编译也非常人性化的提供了不同风格的编译方式,主要分为4种。

比如下面这一段Sass代码,我们来看看在不同风格下,会编译成什么样吧:

  1. nav {
  2. ul {
  3. margin: 0;
  4. padding: 0;
  5. list-style: none;
  6. }
  7. li { display: inline-block; }
  8. a {
  9. display: block;
  10. padding: 6px 12px;
  11. text-decoration: none;
  12. }
  13. }

1.嵌套输出 nested:

  1. nav ul {
  2. margin: 0;
  3. padding: 0;
  4. list-style: none; }
  5. nav li {
  6. display: inline-block; }
  7. nav a {
  8. display: block;
  9. padding: 6px 12px;
  10. text-decoration: none; }

2.展开输出 expanded:

  1. nav ul {
  2. margin: 0;
  3. padding: 0;
  4. list-style: none;
  5. }
  6. nav li {
  7. display: inline-block;
  8. }
  9. nav a {
  10. display: block;
  11. padding: 6px 12px;
  12. text-decoration: none;
  13. }

其实可以看出来和嵌套输出挺像的,只不过闭合的大括号会另起一行(个人比较喜欢这种)

3.紧凑输出 compact

  1. nav ul { margin: 0; padding: 0; list-style: none; }
  2. nav li { display: inline-block; }
  3. nav a { display: block; padding: 6px 12px; text-decoration: none; }

这个也就是所谓的单行CSS格式啦,还是有不少人喜欢这个风格的

    4.压缩输出 compressed:

  1. nav ul{margin:0;padding:0;list-style:none}nav li{display:inline-block}nav a{display:block;padding:6px 12px;text-decoration:none}

也就是变成了压缩之后的CSS代码,去掉了所有的空格和换行

那么最关键的问题来了,如何在编译sass的时候指定输出风格,接下来我会分享命令行和gulp两种方法:

1.命令行编译:

sass --watch style1.scss:style1.css --style compressed

嘛,其实很简单,就是在原来编译指令的后面加了 --style 输出风格

所以只要依据需求,把compact,compressed这样的参数写在--style后面就行

2.gulp编译:

gulpfile.js代码如下:

  1. var gulp = require('gulp');
  2. var sass = require('gulp-sass');
  3. gulp.task('sass', function () {
  4. return gulp.src('./sass/**/*.scss')
  5. .pipe(sass({outputStyle: 'nested'}).on('error', sass.logError))
  6. .pipe(gulp.dest('./css'));
  7. });

其实这个大家应该也能看得出来,就是在原本sass()中加了一个参数outputStyle:'编译风格'。

tips:在不指定风格的情况下,默认为嵌套输出。

Sass学习之路(4)——不同样式风格的输出方式的更多相关文章

  1. [Sass]不同样式风格的输出方法

    [Sass]不同样式风格的输出方法 众所周知,每个人编写的 CSS 样式风格都不一样,有的喜欢将所有样式代码都写在同一行,而有的喜欢将样式分行书写.在 Sass 中编译出来的样式风格也可以按不同的样式 ...

  2. gulp-sass设置不同样式风格的输出方法

    sass最终输出的样式包括下面几种样式风格:嵌套输出方式 nested展开输出方式 expanded 紧凑输出方式 compact 压缩输出方式 compressed sass: nav { ul { ...

  3. Sass学习之路(1)——Sass简介

    Sass是CSS的一种预处理器语言,类似的语言还有Less,Stylus等. 那么什么是CSS预处理器? CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些 ...

  4. Sass学习之路:注释、变量以及导入

    前言 由于.sass不兼容CSS代码,所以以下内容完全使用.scss的语法. Sass注释 Sass中除了提供CSS中的标准注释之外,还提供了一种静默注释: /* 我是标准注释 */ // 我是静默注 ...

  5. Sass学习之路:Sass、Compass安装与命令行

    导言 CSS不是一门真正意义上的编程语言,很多编程语言理所当然的特性(比如变量),都不被支持.同时再开发模块化的web项目的时候,也要避免相互干扰.为了弥补CSS的这些不足,就产生了CSS预处理器,S ...

  6. Sass学习之路(2)——Sass环境安装(windows版)

    因为本喵目前用的是window10的本子,所以这里就发windows版本的安装流程啦.(希望有朋友可以赞助我一个mac(┳_┳)): 第一步:安装ruby 因为Sass是基于ruby编写的,所以先去官 ...

  7. Sass学习之路(5)——变量

    1.定义变量:Sass中定义变量的关键字是'$'(毕竟程序员缺钱),并使用冒号(:)进行赋值,例如: $width:200px;//定义了一个名为width的变量,值为200px 2.普通变量和默认变 ...

  8. Sass学习之路(3)——Sass编译

    Sass的编译也是在我们使用Sass的时候必须要经过的一个步骤,因为".sass"和".scss"文件并不能直接使用<link>标签引用,最终其实还 ...

  9. Flume学习之路 (三)Flume的配置方式

    一.单一代理流配置 1.1 官网介绍 http://flume.apache.org/FlumeUserGuide.html#avro-source 通过一个通道将来源和接收器链接.需要列出源,接收器 ...

随机推荐

  1. jetty服务器的安装和部署、新增到开机启动服务

    Jetty的首页地址是http://www.mortbay.org/jetty/,点击Downloads进入下载介绍页面,由于Jetty7之后,托管服务有Eclipse接替,所以jetty6.1之前( ...

  2. HP P1008打印机如何打印特殊纸张

    一.问题的提出 HP P1008中间有一个进纸槽,这是干什么的? 二.问题的分析 查说明,说这个进纸槽是叫做优先进纸槽,用于各种非常规的纸张的打印. 三.问题的解决 弄一张特殊尺寸的纸张,打开要编辑的 ...

  3. SupportV7包中 SwipeRefreshLayout 修改下拉控件的距离

    //修改下拉距离 ViewTreeObserver vto = mCategoryResults.mSwipeRefreshLayout.getViewTreeObserver(); vto.addO ...

  4. 【Thinking in Java-CHAPTER 3】操作符

    优先级 赋值 对象在使用c=d,那么c和d都指向原本只有d指向的那个对象. 方法调用中的别名问题:当一个对象作为参数传递到一个函数中,函数改变了这个参数,则改变了传递进来的对象: 自增和自减 浮点型的 ...

  5. dSYM atos crash log 定位到代码行的方法(转)

    做iOS开发的时候,常常会遇到crash,需要分析call stack的时候.有时候App在别人的设备崩溃,把crash report在自己的机器上打开,Xcode没有自动的进行符号化.这时候就需要自 ...

  6. ArcGIS Server注册地理数据库报machine:机器名[Oracle:(null)]错误的修改

    环境介绍:本机安装了ArcGIS Server10.2,ArcGIS Desktop10.2,64位Oracle11g以及Oracle32位客户端.直连和服务连接都能成功. 问题:我要进行服务发布的时 ...

  7. spark 编译

    http://blog.csdn.net/zyj8170/article/details/44678405

  8. ruby -- 基础学习(九)filename去除扩展名

         Rails -- filename去除扩展名 简单例子:params[:upload]['preview'].original_filename 的值为templateOne.html.er ...

  9. 详解MemCached原理

    memcached是一个高性能的分布式内存缓存服务器,memcached在Linux上可以通过yum命令安装,这样方便很多,在生产环境下建议用Linux系统,memcached使用libevent这个 ...

  10. redis实现有序的消息队列

    redis是什么东西就不多说了,网上文章一搜一大堆. 首先来说一下我要实现的功能: 类似一个消息中转站吧,如果有人要发送消息,先将消息发到我这里来,然后我这边进行转发,为的就是有一个统一的管理和修改时 ...