less AND sass/scss

一. Sass/Scss、Less是什么?

Sass (Syntactically Awesome Stylesheets)是一种动态样式语言,Sass语法属于缩排语法,比css比多出好些功能(如变量、嵌套、运算,混入(Mixin)、继承、颜色处理,函数等),更容易阅读。

Less也是一种动态样式语言. 对CSS赋予了动态语言的特性,如变量,继承,运算, 函数.  Less 既可以在客户端上运行 (支持IE 6+, Webkit, Firefox),也可在服务端运行 (借助 Node.js)。

Sass与Scss是什么关系?

Sass的缩排语法,对于写惯css前端的web开发者来说很不直观,也不能将css代码加入到Sass里面,因此sass语法进行了改良,Sass 3就变成了Scss(sassy css)。与原来的语法兼容,只是用{}取代了原来的缩进。

二. Sass/Scss与Less区别

1.编译环境不一样

sass的安装需要Ruby环境,是在服务端处理的,而Less是需要引入less.js来处理Less代码输出css到浏览器

2、标识变量的方法不同  Less是@,而Scss是$,

3、而且变量的作用域也不一样

在sass 3.4.0之前,sass可以说是没有局部变量和全局变量之分的,即后声明的同名变量总是会覆盖之前的同名变量,不管后声明的变量是位于何处。

4.Sass支持条件语句,可以使用if{}else{},for{}循环等等。而Less不支持。

三 less/scss讲解

scss 

1、变量 $

$nav-color: #F90;

nav {

  $width: 100px;

  width: $width;

  color: $nav-color;

}

将局部变量转换为全局变量可以添加 !global 声明:

#main {

  $width: 5em !global;

  width: $width;

}

2、Mixins

@mixin link-colors($normal, $hover, $visited) {

  color: $normal;

  &:hover { color: $hover; }

  &:visited { color: $visited; }

}

a {

  @include link-colors(blue, red, green);

}

3. 嵌套CSS 规则;

article a {

  color: blue;

  &:hover { color: red }

  h1, h2, h3 {margin-bottom: .8em}

}

4、计算

p {

  font: 10px/8px;             // Plain CSS, no division

  $width: 1000px;

  width: $width/2;            // Uses a variable, does division

  width: round(1.5)/2;        // Uses a function, does division

  height: (500px/2);          // Uses parentheses, does division

  margin-left: 5px + 8px/2px; // Uses +, does division

}

5、控制 @if @else    @for $var from  to    @each $var in  @while

@if @else 

$type: monster;

p {

  @if $type == ocean {

    color: blue;

  } @else if $type == matador {

    color: red;

  } @else if $type == monster {

    color: green;

  } @else {

    color: black;

  }

}

@for $var from to 

@for $i from 1 through 3 {

  .item-#{$i} { width: 2em * $i; }

}

   @each

@each $animal in puma, sea-slug, egret, salamander {

  .#{$animal}-icon {

    background-image: url('/images/#{$animal}.png');

  }

}

@while

$i: 6;

@while $i > 0 {

  .item-#{$i} { width: 2em * $i; }

  $i: $i - 2;

}

6、函数

$grid-width: 40px;

$gutter-width: 10px;

@function grid-width($n) {

  @return $n * $grid-width + ($n - 1) * $gutter-width;

}

#sidebar { width: grid-width(5); }

less

1、变量 @    1)(选择器名称,属性名称,URL和@import等都可以使用@{my-selector}) 2) 延迟加载 (不必在使用前声明)

@nice-blue: #5B83AD;

@light-blue: @nice-blue + #111;

#header {

  color: @light-blue;

}#header {

  color: @nice-blue;

}

属性中使用

.widget {

  @{property}: #0ee;

  background-@{property}: #999;

@property: color;

}

结果

.widget {

  color: #0ee;

  background-@{property}: #999;

}

2、Mixins

.bordered {

  border-top: dotted 1px black;

  border-bottom: solid 2px black;}

#menu a {

  color: #111;

  .bordered;

}

.border-radius(@radius: 5px) {

  -webkit-border-radius: @radius;

     -moz-border-radius: @radius;

          border-radius: @radius;

}

3、嵌套   1)引用父选择器 &

#header {

  color: black;

  &.navigation {

    font-size: 12px;

  }

  .logo {

    width: 300px;

  }

}

&多级套用

.grand {

  .parent {

    & > & {

      color: red;

    }

  }

}

结果

.grand .parent > .grand .parent {

  color: red;

}

4、计算

@base: 5%;

@filler: @base * 2; // result is 10%

@other: @base + @filler; // result is 15%

5、函数

.average(@x, @y) {

  @average: ((@x + @y) / 2);

}

div {

  .average(16px, 50px); // "call" the mixin

  padding: @average;    // use its "return" value

}

结果div {

  padding: 33px;

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容