sass 与 less 的区别与学习   :    https://www.cnblogs.com/roashley/p/7731865.html  或

    https://www.cnblogs.com/feng-wu/p/6040387.html(less教程,变量,混合,匹配,运算,嵌套...)

使用css预处理器的好处:

1、css有很多的兼容性问题,使用 预处理器可以把某个兼容的属性写在一个函数里面。其它的地方需要用到这个属性,直接调用这个方法就可以了。

  就不需要对应浏览器做兼容处理了(比如对应不同浏览器加不同的前缀)。

.box-shadow (@string) {
-webkit-box-shadow: @string;
-moz-box-shadow: @string;
box-shadow: @string;
}

2、less中 变量和函数 都是不编译的,只有在使用它们的地方才会编译它们。这样的一组会用到属性,放在less文件上,编译后,没有一点的存储占用。


LESS

1、注释(css中注释只有      /*    */   这一种):

  less中注释有两中,/*    */注释编译后保留;//  注释编译后消失。

2、@import "  ";  可以导入其它的less文件。

3、避免编译:   ~“     ”   或   ~‘    ’    可以避免less把不需要编译的属性值给编译了。如   width:~"calc(300px - 30px)" ;这个不能让less计算,CSS3中是有这个运算功能的。这个表达式是给浏览器解析的,不是less。https://www.imooc.com/video/4839

4、伪类写法:  :  https://www.cnblogs.com/ranzige/p/3654296.html

5、less语法详解  :  https://blog.csdn.net/iamcgt/article/details/73028435

其它参考https://blog.csdn.net/lidysun/article/details/52537770

6、混合

     参考:https://blog.csdn.net/iamcgt/article/details/73028435?utm_source=itdadao&utm_medium=referral

  —— 继承其它的选择器属性。(只是继承哪个选择器的属性,选择器名没有影响)

.bordered {
border-top: dotted 1px black;
border-bottom: solid 2px black;
}
#menu a {
color: #111;
.bordered;
}

  —— 函数 (带参数)

.border-radius (@radius) {
border-radius: @radius;
-moz-border-radius: @radius;
-webkit-border-radius: @radius;
}
#header {
.border-radius(4px);
}

   ——  函数 (参数设置默认值)

.border-radius (@radius: 5px) {
border-radius: @radius;
-moz-border-radius: @radius;
-webkit-border-radius: @radius;
}
#header {
.border-radius;
}

  —— 函数 (不带参数), 用于隐藏这个属性集合,不让它暴露到CSS中去。

.wrap () {
text-wrap: wrap;
white-space: pre-wrap;
white-space: -moz-pre-wrap;
word-wrap: break-word;
} pre { .wrap }

  —— 函数 (@arguments包含了所有传递进来的参数.。不必单独处理每一个参数)

.box-shadow (@x: 0, @y: 0, @blur: 1px, @color: #000) {
box-shadow: @arguments;
-moz-box-shadow: @arguments;
-webkit-box-shadow: @arguments;
}
.box-shadow(2px, 5px);

sass

1、less有两种注释,/* */是会被编译到css文件中的。//不会

2、scss中的变量(Variables)在SASS中你也可以声明变量,并在整个样式表中使用。

3、scss中选择器嵌套特性,我们可以在父元素的大括号{}里写这些元素。同时可以使用&符号来引用元素的父选择器(这个主要是伪类的和组合选择器有用)。

4、scss中属性嵌套,

5、scss中Mixins  简单的说Mixins可以将一部分样式抽出,作为单独定义的模块,被很多选择器重复使用。

6、scss中选择器继承 ,这个的一个明显的优点是,就是在有相同类名或标签名的选择器中,出现耦合的可能性比较少,因为前面已经有选择器给它限制了。可以很方便。

7、.css.map文件的作用是让浏览器显示的css在地几行代码会对应到scss文件的第几行。这样我们要通过修改sass文件来修改css代码就会很方便,如果直接在css中改就不用这个东西了。

总结:scss是sass新的语法,scss(sass)中的四个基本特性:变量、嵌套、Mixins和继承的基本使用规则。还有@function函数方法

sass的其他的特性,碰到需要的时候在学吧。

Less 和 Sass的更多相关文章

  1. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  2. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  3. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  4. 前端CSS预处理器Sass

    前面的话   "CSS预处理器"(css preprocessor)的基本思想是,用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件.SASS是一种CSS的开发工 ...

  5. SASS教程sass超详细教程

    SASS安装及使用(sass教程.详细教程) 采用SASS开发CSS,可以提高开发效率. SASS建立在Ruby的基础之上,所以得先安装Ruby. Ruby的安装: 安装 rubyinstaller- ...

  6. Sass之坑Compass编译报错

    前段时间在使用Compass时遇到了其为难处理的一个坑,现记录到博客希望能帮助到各位. 一.问题: 利用Koala或者是gulp编译提示如下,截图为koala编译提示错误: 二.解决办法 从问题截图上 ...

  7. emmet,jade,haml, slim,less,sass,coffeescript等的实战优缺点

    摘要: 文章背景,来自于群内周五晚上的一次头脑风暴式的思维碰撞交流活动. 随着前端技术的蓬勃发展, 各种新技术随着生产力的需要不断的涌入我们的视野, 那今天探讨的话题是这些新时代的前端兵器谱: 一. ...

  8. Sass用法指南

    写在前面的话:随着CSS文件越来越大,内容越来越复杂,对其进行很好的维护将变的很困难.这时CSS预处理器就能够帮上大忙了,它们往往拥有变量.嵌套.继承等许多CSS不具备的特性.有很多CSS预处理器,这 ...

  9. PostCSS深入学习: PostCSS和Sass、Stylus或LESS一起使用

    如果你喜欢使用PostCSS,但又不想抛弃你最喜欢的预处理器.不用担心,你不需要作出二选一的选择,你可以把PostCSS和预处理器(Sass.Stylus或LESS)结合起来使用. 有几个PostCS ...

  10. Sass:初识Sass与Koala工具的使用

    一.下载Koala(找到合适的系统版本)并安装 二.先新建一个css文件夹,并在里面新建一个文本文档(.txt),将其命名为demo.scss 三.打开Koala,将css文件夹拽进来,可以修改一下输 ...

随机推荐

  1. Python--模块之re

    re模块 就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的字节码,然后由用 C ...

  2. IE11“__doPostBack”未定义”

    IE 11 下<asp:LinkButton> 点击出现 “__doPostBack”未定义” 在项目根目录 App_Browsers 下新建 浏览器文件(.browser),让其与IE1 ...

  3. 阿里云Redis 配置

    查看路径whereis redis 1.修改配置文件 vim /etc/redis.conf 这三个配置是必须的 修改内容,把 daemonize no 修改为:daemonize yes requi ...

  4. inline-block空隙怎么解决

    方法一:移除空格 元素间留白间距出现的原因就是标签段之间的空格,因此,去掉HTML中的空格,自然间距就木有了.考虑到代码可读性,显然连成一行的写法是不可取的,我们可以: <div class=& ...

  5. Node.js 开发技能图谱

    # Node.js 开发技能图谱 ## Node.js 语言环境搭建 - Node.js 安装(3m大法:nvm.npm.nrm)- Node.js 命令- Node.js开发工具(推荐vscode) ...

  6. form表单submit事件

    form表单submit事件同时会触发form表单中button按钮的click事件 <!DOCTYPE html> <html> <head> <meta ...

  7. NIO模型学习笔记

    NIO模型学习笔记 简介 Non-blocking I/O 或New I/O 自JDK1.4开始使用 应用场景:高并发网络服务器支持 概念理解 模型:对事物共性的抽象 编程模型:对编程共性的抽象 BI ...

  8. eclipse 集成 STS 插件

    eclipse 集成 STS 插件 想新建一个 Spring Boot 工程,发现没有,如图:(展示的是集成之后的) eclipse 要和 sts 版本对应的,进入http://spring.io/t ...

  9. activiti7流程变量的测试(设置全局变量)

    package com.zcc.activiti03; import org.activiti.engine.*;import org.activiti.engine.repository.Deplo ...

  10. 基于MFC的Media Player播放器的制作(4---功能实现代码)

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. PandaPlayerDlg.h // PandaPlayerDlg.h : header file // //{{AFX_INCLUDE ...