Less和SASS

一,LESS

1,条件判断

在less中我们可以通过条件判断实现渲染不同的样式,有点像switch,不是通过if实现的,而是when实现的

在when方法中添加条件时,不需要单位

当判断相等时,使用等号(=)实现,没有(== 和 ===)

判断多个条件时,使用and关键字,配合when使用 when and

判断非语句,使用not ,when not

2,函数-Math

在less中我们可以像JS中使用Math对象一样使用less中的数学函数

Floor:向下取整(参数带单位)

Ceil:向上取整

Round:四舍五入

Percentage:将数值转化为百分数,(参数如果带有%单位是无效的),参数只能是数组

sqrt():平方根

abs:()绝对值

sin:()sin 函数

asin():arcsin函数

cos():cos函数

acos():arccos函数

tan() :tan函数

atan():arctan函数

pi():返回π

pow(a,b):a的b次方

mod(m,n):m对n取余

convert(m,n):数字之间转换

unit(m,n):不转换情况下替换数字

3,颜色定义函数

rgb():可以生产一个16进制的色彩值,标准的色彩方法

语法:

rgb(red,green,blue)每一个值都是0-255

rgba():rgba(red,green ,blue,alpha)红绿蓝透明度

hsl():表示色相,饱和度和亮度模式,是一种工业标准色彩模式

语法:

hsl(h,s,l)

h:色相,表示某一种颜色(0-360)

s:饱和度,色彩的浓度,单位是白分数,0%表示灰色,100%表示纯色

l:亮度,单位也是百分比,0%表示黑色,100%表示白色

4,颜色通道

less中色彩通道的方法:

red():获取色中的红通道

green():获取色中的绿色通道

blue():获取色中的蓝色通道

alpha():获取色中的透明度通道

hue():获取色中的色值通道,数字(0-360)

saturation():饱和度通道,获取色中的饱和度通道,百分数

lightness():获取色中的亮度通道,结果是百分数

这七个通道方法都只能接受一个参数,这个参数就是某个颜色

灰色是有三个相同的通道组成的,值越小灰度越大

5,颜色操作

颜色操作类函数,用于处理色彩

fade();对色彩进行透明度处理

fade(color,alpha)

fade(red,0.4)

fadeIn():表示增加透明度,当第一个参数不是颜色时,得到的是一个16进制不透明的颜色,透明度大于1

fadeout():透明度减少,可以接受两个参数,第一个表示颜色,第二个表示透明度的变化,是一个百分数

greyscale():得到混合色灰色颜色值,接受一个表示颜色的参数

mix:将两种颜色混合,默认情况下取两种颜色的平均值,第三个参数表示取的数组,是百分比,表示色彩混合的权重

saturate();增加饱和度

参数1:颜色

参数2:饱和度的增加量

desaturate():减少饱和度

lighten();提高颜色亮度

参数1:颜色

参数2:提高的亮度

darken():降低颜色亮度

6,色彩的混合函数

这个函数只做颜色处理,不处理图片

softlight:柔光处理

参数1:底色

参数2:添加色

hardlight:强光处理

参数1:底色

参数2:添加色

 

一,LESS

1,字符串方法

escape(str):将字符串做URL转码

参数时需要转码的字符串,将空格等号 等字符转义

e():表示对字符串不做编译

replace():替换字符串中的子串

参数1:源字符串

参数2:被替换的字符串

参数3:替换的字符串

2,命名空间

命名空间是用来约束管理变量的,解决,变量在作用域中混乱的问题,防止变量污染作用域。

设计模式中单体模式是实现命名空间管理的一种常见设计模式。

在less中引入了该思想,在less中我们可以通过命名空间来管理变量混合,以及方法

为了更好组织 CSS 或者单纯是为了更好的封装,将一些变量或者混合模块打包起来,防止重名的出现,以及更好的管理变量和混合

 

&:在less中表示该元素,注意,&符号要写在里面

注意,引用混合时,要将属性赋值给谁就要放在谁的里面

 

3,作用域

Less到底是一个什么样的作用域呢?

在less中,作用域更像是一个块作用域,定在块内部的变量在外界访问不到。

在less中,访问变量的顺序,就近原则,哪个变量离他近就使用哪个

 

对于函数,它的存在也是依赖块级作用域,定义在块内部的函数,在外界访问不到,

但是我们可以通过命名空间使用它。

 

对于变量,他的存在也是依赖于块级作用域,定义在块内部的变量,我们在外界访问不到,

但是我们也不能通过命名空间访问。变量更像是一种私有的。

 

4,文件引入

如果将css样式全部写在一个文件中很不方便,所以要分开

利用文件引入,在less之间创建依赖

语法:

@import 'filename';

通过import 导入文件的内容,被导入的文件中的变量,混合,方法等内容在编译后悔留在当前文件中,可以被调用使用

5,插值

如果我们需要一个变量插入到一个字符串中,可以使用less的插值处理

语法:

@{key} //key 是变量名字

二,Sass

1,简介

SASS 是一种css的开发工具,提供了许多便利的写法,大大节省了开发者的时间,使css的开发变得简单可维护

sass的本质是一种可以简化css工作流程方式,可以帮助我们更简单的开发和维护css内容

sass是ruby语言写的,因此电脑需要先安装ruby,mac已经自带了,windows系统需要重新安装环境

@url:escape('../images/bg.jpg?a=10');

@url1:e('../images/bg.jpg?a=10');

.box{

width: 100px;

height: 100px;

background:url(@url);

-webkit-background-size: 100%;

//background-color:url(@url1);

background-size: 100%;

//background: e('rgb(100,200,50)');

 

}

.box::before{

//只能替换第一个出现的red

content:replace('this color is red','red','green');

color:red;

}

一般情况sass文件会写为scss:

sass index.scss index.css

2,变量与作用域

变量定义:$key: value;

作用变量的影响:在作用域内部定义的变量,外部无法访问,是私有的

3,父选择器

在sass中可以通过&符号,在父选择器内部访问父选择器

选择当前选择器

4,属性嵌套

sass对css属性进行嵌套,通常是对符合属性进行嵌套

border-top-color

==>

border:{

top:{

color:red;

}

left:{

style:solid;

}

}

在css中,对属性嵌套,当编译时会根据嵌套的层级进行编译结果

5,混合

sass中混合作用是为了继承复用

语法:

定义:@mixin names {width:100px}

使用:@include names;

混合可以传参:(参数默认值)

定义:@mixin names($w,$h:100px){width:100px;}

使用:@include names(100px,200px,)

多参数混合:

6,继承

sass中的混合与less中的方法有点像

sass中的继承与less中的混合有点像

继承是用来实现对其他类或者元素或者ID样式的继承

语法:

@extend 选择器;

sass不仅仅可以继承元素名称的选择器,还可以继承自定义的元素名称选择器

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值