我们一般所使用的Less跟Sass一般是将其编译成我们所熟悉的CSS再导入使用,当然不经编译,直接在浏览器使用

我是习惯用Koala来进行编译,简单智能方便,Hbuilder也自带编译功能,不过要手动,比较麻烦

首先我们来说一下Less。

【Less中的变量】
1.声明变量使用 @变量名:变量值;
2.使用变量 @变量名
>>less中的变量类型:
①数字类 1 10px ②字符串:无引号字符串 red 和有引号字符串"gdak"
③颜色类 red #000000 rgb()
④值列表类型,用逗号或空格分隔
>>变量使用原则 :
多次频繁出现的值、需要修改的值设为变量
 
3.混合(MiXins)
①无参混和声明 :.name{} 调用:选择器中调用
②带参混合
无默认值声明: .name(@param){} 调用:.name(parValue); parValue不可以省略
有默认值声明: .name(param:value()){} 调用:name(parValue); parValue可以省略
>>无参混合会在CSS中编译同名的class选择器;有参的不会
4.Less的匹配模式
使用混合进行匹配,类似于if结构:
声明
.name(条件一,参数){}
.name(条件二,参数){}
.name(@_,参数){}
调用: .name(条件值,参数值);
匹配规则:根据调用时提供的条件值,去寻找与之匹配的miXin执行,其中@_表示永远需要执行的部分
5.Less中的运算
*+-/可带单位可不带
颜色运算时,红绿蓝分三组计算,组内可进位,组间互不干涉。
6.Less中的嵌套:保留HTML中的代码结构,
嵌套默认后代选择器,如果需要子代选择器,则在子代前面加>
&表示上一层,&:hover 表示上一层的hover事件
 
 
 
section p {
color: red;
background-color: blue;
text-align: center;
}
section ul {
padding: 0px;
list-style: none;
}
section ul li {
float: left;
margin: 10px;
width: 100px;
text-align: center;
border: 1px solid #000000;
}
section ul li:hover {
background-color: yellowgreen;
}

当然,我们最看好less的一点可能就是它的嵌套了就像上边要写这么长的代码,使用less来写就如以下代码所示,是不是看着舒服了很多,用编译器编译完就可以显示为上边代码的样子了

section{
p{
color: red;
background-color: blue;
text-align: center;
}
ul{
padding: 0px;
list-style: none;
li{
float: left;
margin: 10px;
width: 100px;
text-align: center;
border: @bod;
&:hover{
background-color: yellowgreen;
}
}
}
}

下边来说与一下Sass

1. SASS中的变量
使用 $变量名:变量值 声明变量
如果变量名需要在字符串中嵌套,则需使用#加大括号包裹:
2.sass中的运算会将单位也进行运算,使用时需注意最终单位:
例:10px*10px=100px*px
3.sass中的嵌套: 选择器的嵌套 属性嵌套 伪类嵌套
选择器的嵌套 ul{li{}}后代
ul{>li{}}子代
&表示上一层 div{ul{li{&=-=div ul li}}}
属性嵌套 :属性名与大括号之间必须有: 例如boder:{color:red;}
伪类嵌套: ul{li{&:hover{"ul li :hover"}}}
4. 混合宏、继承、占位符
①混合宏:声明@mixin name($param:value){}
调用:@include name(value)
》》声明时,可以有参可以无参;可带默认值,但调用必须符合生命规范
>>优点:可以传参,不会生成同名class
>>缺点:会将混合宏的代码copy到对于那个的选择器中
②继承: 声明: .class{} 调用: @extend .class
>>优点:继承的相同代码会提取到并集选择器中,减少冗余代码,
>>缺点:无法进行传参,会在CSS中生成一个同名class
③占位符:声明:%class{} 调用: @extend %class
>>优点:继承相同代码,会提到并集选择器,不会生成同名的class选择器;
>>缺点:无法进行传参
 
综上所述:当要传递参数时用混合宏,当有现成class时用继承,不须参数不需class时候用占位符
5.if条件结构:
@if 条件{}
@else 条件{}
6.for循环结构
@for $i from 1 to 10{} 不含十;
@for $i from 1 through 10{} 含十;
7.while循环结构
$j:1;
@while $j<10{
.while井{$j}{
boder:井{$j}px solid red;
}
$j:$j+1;
}
8.each循环遍历
@each item in a,b,c,d{
//item 表示每一项
}
9、函数:
@function func($length){
$length: $length*5;
@return $length;
}
调用:func(10px);
 

相信都能看出sass与less的不同了,定义变量Less用的是@符,Sass用的是$符当然,sass可以用if条件结构,循环结构,定义函数比less高大上了许多。所以一般还是用sass来写,以备以后不时之需

CSS预处理语言——less与sass的使用的更多相关文章

  1. css预处理语言--让你的css编写更加简单方便

    CSS预处理语言之一-------LESS Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量.Mixin.函数等特性,使 CSS 更易维护和扩展. Less 可以运行在 Nod ...

  2. CSS预处理语言

    CSS预处理语言 Less,Sass,Stylus 安装 Less yarn add less 运行命令 ./node_modules/.bin/lessc 嵌套规则 Less.Sass嵌套规则一样 ...

  3. Less:Less(CSS预处理语言)

    ylbtech-Less:Less(CSS预处理语言) Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合(mixin).函数等功能,让 CSS 更易维护.方便制作主题 ...

  4. CSS预处理语言-less 的使用

    Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量.Mixin.函数等特性,使 CSS 更易维护和扩展. Less 可以运行在 Node 或浏览器端. Less的编译处理 作为一 ...

  5. CSS 预处理语言之 less 篇

    less 前言 Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合(mixin).函数等功能,让 CSS 更易维护.方便制作主题.扩充. 安装 客户端使用 // 引入 ...

  6. css预处理语言的模块化实践

    编写css是前端工作中,一项普通而又频繁的劳动,由于css并不是一门语言,所以在程序设计上显得有些简陋.对于小型项目来说,css的量还不至于庞大,问题没有凸显,而如果要开发和持续维护一个较为大型的项目 ...

  7. CSS预处理器之less和sass

    CSS预处理器 1.        基于CSS的另一种语言 2.        通过工具编译成CSS 3.        添加了很多CSS不具备的特性 4.        能提升CSS文件的组织方式 ...

  8. LESS,强大的CSS预处理语言

    虽然写的css不多,但是我已经切身感觉到了书写css的恶心...抛开最令人烦的浏览器兼容问题不说,这个语言本身就有不少问题. 最简单的,比如多个地方是同一个颜色的,如果可以写在一个样式里还没什么,但是 ...

  9. CSS 预处理语言之 Scss 篇

    简介 1. Sass 和 Scss Sass 和 Scss 其实是同一种东西,我们平时都称之为 Sass:Scss 是 Sass 3 引入新的语法,其语法完全兼容 CSS3,并且继承了 Sass 的强 ...

随机推荐

  1. 使用Nginx+CppCMS构建高效Web应用服务器

    使用Nginx+CppCMS构建高效Web应用服务器 1:Why当前,越来越多的网站使用了各种框架,大部分框架使用了脚本语言.半编译语言等.比如Java.Python.Php.C#.NET等.这些框架 ...

  2. 使用python landport库快速实现排行榜

    背景介绍 排行榜业务使用的频率实在太高了,各种活动都会使用排行榜.经过多次开发后我觉得实现一个简单的排行榜库,它能够完成当前我遇到的所有业务逻辑问题,也希望能够帮助到想要快速开发排行榜业务的同行. 我 ...

  3. Office 365开发概述及生态环境介绍(一)

    原文于2017年3月13日首发于LinkedIn,请参考这个链接 离上一篇文章,很快又过去了两星期的时间.今天抓紧晚上的时间,开始了Office 365开发系列文章的第一篇,我会帮助大家回顾一下过去O ...

  4. [LeetCode] Trapping Rain Water II 题解

    题意 题目 思路 我一开始想的时候只考虑到一个结点周围的边界的情况,并没有考虑到边界的高度其实影响到所有的结点盛水的高度. 我们可以发现,中间是否能够盛水取决于边界是否足够高于里面的高度,所以这必然是 ...

  5. IPhone 、Webkit手机浏览器Div滚动、滑动卡,遮罩层被穿透的解决办法

    在滚动条的层上面加上-webkit-overflow-scrolling:touch;样式即可解决!

  6. iOS开发之Info.plist文件

    建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除 在旧版本Xcode创建的工程中,这个配置 ...

  7. iOS开发之UIView的常见属性

    1.所有控件都继承自UIView,UIView的常见属性如下: @property(nonatomic,readonly) UIView *superview;获得自己的父控件对象 @property ...

  8. yii2发送邮件(配置QQ版本)

    1:首先在配置文件main-local.php components=>[]里面配置 'mailer' => [              'class' => 'yii\swift ...

  9. Office 365开发环境概览

    本文于2017年3月26日首发于LinkedIn,原文链接请参考这里 本系列文章已经按照既定计划在每周更新,此前的几篇文章如下 Office 365 开发概览系列文章和教程 Office 365开发概 ...

  10. Dapper源码学习和源码修改(下篇)

    目录: Dapper源码学习和源码修改(上篇主要讲解入参解析) Dapper源码学习和源码修改(下篇主要讲解出参解析) 继上篇讲了下自己学习Dapper的心得之后,下篇也随之而来,上篇主要讲的入参解析 ...