【Less中的变量】
  1、声明变量:@变量名:变量值;
     使用变量:@变量名
@length:100px;
@color:yellow;
@opa:0.5;
  >>>Less中变量的类型:
    ①数字类:1 10px
    ②字符串:无引号字符串 red 有引号字符串 "haha"
    ③颜色类:red #000000 rgb()
    ④值列表类:用逗号或空格分隔10px solid red
  >>>变量使用原则:多次频繁出现的值、需要修改的值,设为变量。
#div1{
width: @length;
height: @length;
background-color: @color;
opacity: @opa;
.borderRadius;
.setMargin(top_,10px);
}

  

2、混合(Mixins)
  ①无参混合
   声明:.name{}; 选择器中调用 .name
  ②带参混合
   无默认值声明:.name(@param){} 调用:.name(parValue);
   有默认值声明:.name(@param:value){} 调用:.name(parValue); parValue可省
    >>>如果声明时,参数没有默认值,则调用时必须赋值,否则报错
    >>>无参混合,会在css中编译出同名的class选择器;有参的不会
3、Less的匹配模式
  使用混合进行匹配,类似于if结构;
  声明:.name(条件一,参数){} .name(条件二,参数){} .name(条件三,参数){} .name(@_,参数){}
.setMargin(top_,@width){
margin-top: @width;
}
.setMargin(bottom_,@width){
margin-bottom: @width;
}
.setMargin(@_,@width){
padding: 10px;
}
  调用:.name(条件值,参数值);
.setMargin(top_,10px);
  匹配规则:根据调用时提供的条件值,去寻找与之匹配的"Mixins"执行。其中@_表示永远需要执行的部分。
4、Less中的运算
  + - * /
  颜色计算时,红绿蓝分三组计算。组内可进位,组间互不干涉

【Less中的嵌套】
  1、嵌套默认是后代选择器,如果需要子代选择器,则在子代前面加>
  2、& 表示上一层,&:hover 表示上一层的hover事件
section{
p{
color: blueviolet;
background-color: #00FFFF;
text-align: center;
}
ul{
padding: 0px;
list-style: none;
li{
float: left;
margin: 10px;
width: 100px;
border: 3px solid #00CED1;
text-align:center;
&:hover{
background-color: cornflowerblue;
color: white;
}
};
}
}
 
【Sass中的变量】
  1、声明变量:$变量名:变量值
  2、变量在字符串中嵌套,需使用#{}包裹
border: #{$i}px solid red; 
  3、Sass中的运算:会将单位也进行运算。使用时需注意最终单位
    10px*10px=100px*px
  4、混合宏、继承、占位符
    ①混合宏:声明@mixin name($param:value){}
@mixin hong($color:yellow){
color: $color;
}

         调用@include name(value);

@include hong;

  

    >>>声明时可以有参,也可无参;可带默认值,也可不带;但是调用时必须符合声明规范,同less
    >>>优点:可以传参
    >>>缺点:会将混合宏中代码copy到对应的选择器中,产生冗余代码
    ②继承:声明:.class{}
.class{
padding: 10px;
}

        调用:@extend.class;

@extend .class;

    >>>优点:继承的相同代码,可以提取到并集选择器;不会生成同名的class选择器

    >>>缺点:无法进行传参
  综上所述:当需要传递参数时,用混合宏;当有现成class时用继承;当不需要class时,用占位符
  5、if条件结构
    @if 判断条件{}
    @else{}
  6、for循环结构
    @for $i from 1 to 10{} 不含10
    @for $i from 1 through 10{} 包含10
@for $i from 1 through 4{
.border#{$i}{
border: #{$i}px solid red;
}
}

  7、while循环结构

    $j:1,
    @while 判断条件{}
$j:1;
@while $j<4{
.while#{$j}{
border:#{$j}px solid red;
}
$j:$j+1;
}

  8、each循环遍历

    @each $item in a,b,c,d{}
  9、函数
    @function func($name){}

@function func($length){
$length:$length*5;
@return $length;
}

  【Sass中的嵌套】

  1、选择器嵌套 ul{ li{} } 后代
    ul{ >li{} } 子代
    &表示上一层 div{ ul {li{ &=="div ul li" } } }
  2、属性嵌套:属性名与{之间必须有: 例如 border:{color:red;}
  3、伪类嵌套:ul{li{ &:hover{ "ul li:hover " } } }

    

section{
p{
color: #2173B6;
background-color: #00FFFF;
}
ul{
padding: 0px;
list-style: none;
li{
float: left;
width: 100px;
text-align: center;
margin: 10px;
border: {
color: #4E81BD;
style:solid;
width: 10px;
};
&:hover{
background-color: #6495ED;
color: white;
}
}
}
}

  

 

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. HTML——超文本标记语言

    HTML: 网站(站点) - 网页 1.HTML作为文件后缀名,可以把文件变为网页 2.HTML是一门编程语言的名字:超文本标记语言 3.超越了文字的范畴,除了文字还可以有图片.视频.音频.动画特效等 ...

  2. 微信JS图片上传与下载功能--微信JS系列文章(三)

    概述 在前面的文章微信JS初始化-- 微信JS系列文章(一)中已经介绍了微信JS初始化的相关工作,接下来本文继续就微信JS的图片上传功能进行描述,供大家参考. 图片上传 $(function(){ v ...

  3. Django ORM模型的一点体会

    作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载. 使用Python的Django模型的话,一般都会用它自带的ORM(Object-relational ma ...

  4. Python中的内置函数__init__()的理解

    有点意思,本来我是学习java的.总所周知,java也有构造函数,而python在面向对象的概念中,也有构造函数.它就是 __init__(self) 方法. 其实类似于__init__()这种方法, ...

  5. [原创]HBase学习笔记(4)- 数据导入

    需要分别从Oracle和文本文件往HBase中导入数据,这里介绍几种数据导入方案. 1.使用importTSV导入HBase importTSV支持增量导入.新数据插入,已存在数据则修改. 1.1.首 ...

  6. js移动端横竖屏检测

    方法一:用resize事件来判断,利用屏幕的宽高比,来判断横竖屏 (兼容性较好) (function () { var updateOrientation = function () { var or ...

  7. WEB开发性能优化--核心定义介绍篇(1)

    推荐理由 随着 互联网的蓬勃发展,并且伴随着产品功能的越来越复杂,对于技术人员来说最大的挑战就是如何在保证业务快速发展的同时,也可保证不断复杂的业务对用户体验的影响,其中对用户来说最重要的体验指标是如 ...

  8. jQuery中jsonp函数实现

    由于浏览器中的同源策略,不同的域名,不同的协议,甚至不同的端口都无法请求数据.因此出现了浏览器跨域请求数据问题. Jsonp是解决跨域问题的一个非常流行的方法. JSONP(JSON with Pad ...

  9. Android -- 贝塞尔曲线公式的推导

    1,最近看了几个不错的自定义view,发现里面都会涉及到贝塞尔曲线知识,深刻的了解到贝塞尔曲线是进阶自定义view的一座大山,so,今天先和大家来了解了解. 2,贝塞尔曲线作用十分广泛,简单举几个的栗 ...

  10. 【Java基础 】Java7 NIO Files,Path 操作文件

    从Java1.0到1.3,我们在开发需要I/O支持的应用时,要面临以下问题: 没有数据缓冲区或通道的概念,开发人员要编程处理很多底层细节 I/O操作会被阻塞,扩展能力有限 所支持的字符集编码有限,需要 ...