c语言less函数,LESS使用方法

LESS

Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性,使 CSS 更易维护和扩展。

Less 可以运行在 Node 或浏览器端。

1.安装

$ npm install -g less

复制代码

LESS的编译常用的分为两种:

开发环境下(开发项目的时候);

我们基于less-2.5.3.min.js进行编译:基于link把less文件导入,

但是erl的值必须是stylesheet/less , 这样导入的JS会找到这些less文件,把less编译为css;

生产环境下(项目部署上线的时候)

我们需要把less编译成CSS,然后让页面中导入的都是编译后的CSS, 需要基于node环境,并且基于less模块进行编译(命令操作方式);

安装NODE(安装NPM)

$ npm install less -g(MAC最好设置sudo安装 sudo npm install less -g);

找到对应的less文件目录,在目录中:$ lessc. xxx.less xxx.css / -x (设置-x是为了把代码进行压缩);

复制代码

1、LESS - 变量

相对CSS3来说,LESS的变量存储一些值之后可以复用,并且当值发生改变时,只需要修改变量的值即可;

如下,当@A改成green,整个值为@A的都会改成green,如果项目中有N个元素需要同时改动,用起来很方便;

.box{

color:red;

}

// LESS

@A:red;

@images:"../images";

.box{

color:@A;

}

.box2{

color:@A;

img{

background:url('@{images}/XXX.jpg');

}

}

复制代码

2、LESS - 嵌套

嵌套(减少前缀);

每一个大括号都是私有作用域,在里面用到得变量,先看是否私有的(是否在当前作用域中声明过和形参变量),不是私有的找上级作用域中的;=>"类似于JS作用域链机制";

unit: LESS中内置的函数,用来设置或者去除单位的;

// 普通CSS

.contain{

...

}

.contain .box{

...

}

.contain .box .box2{

...

}

// LESS

@W:100px;

@bg:green;

.contain{

//.contain的样式

width:@W;

.box{

//.contain .box的样式

backgroud:@bg;

@bg:gold;

.box2{

//.contain .box .box2的样式;

}

}

}

如上代码,.box的bg优先看自己域有没有,有就使用自己域,没有想上找(类似作用域的查找机制);

复制代码

LESS- 函数

1.每一个样式类都能被充当一个函数,直接在其它的作用域中调取执行(执行特点:不需要传参,可以不加小括号) =>这种函数的调用是把原有的代码都原封不动的拿过来一份一模一样的(包括其所有的后代样式)

2.带参数的函数(创建函数带着小括号),也是直接点的方式调用,但是编译成为css的时候,函数不会编译,但是函数执行出来的代码会放到每一个调取函数的选择器中

3.less中的内置函数

unit

darken

lighten

1、函数调用应用 ——样式复用的方法

1.函数调用

2.继承

// 函数调用

.box1 {

@A1: lightgreen;

@W: 200;

@H: 200px;

width: unit(@W, px);

height: @H;

border: 5px solid @A1;

//.box1 img

img {

//@W-20这样被理解为是一个变量名(变量名可以包含-)

width: unit((@W)-20, px);

height: unit(unit(@H, px)-20, px);

}

}

.box2{

.box1;// 执行box1,如果结构一样,可以复制全部样式;

}

// 2.样式继承

//写法1

.box2 {

&:extend(.box1);

}

//写法2

.box2:extend(.box1) {}

基于继承也能实现样式的公用(原理:两个样式类公用同一套代码,但是后代样式不能被继承)

复制代码

2、函数调用应用 —— 公共方法调用

项目中经常会有一些公共样式,我们一般可以写一些公共的方法放在文件夹,用的时候直接调用即可;

// 公共文件内容common(用来存放公共方法)

.func_center(@W:100,@H:100){

position: absolute;

top: 50%;

left: 50%;

margin:unit(-(unit(@H,px)/2),px) 0 0 unit(-@H/2,px);

}

.func_transition(@property:all,@duration:.5s,@timing:linear,@delay:0s){

transition:@arguments;

}

// less.less内容

// 先引入公共方法common; (reference)表示less文件编译CSSA时,此文件不编译

@import (reference) './common.less';

//less样式引入公共方法

.box1 {

@A1: lightgreen;

@W: 200;

@H: 200px;

.func_center(@W, unit(@H, px)); //引入居中的函数;

// unit: LESS中内置的函数,用来设置或者去除单位的(如果有就去除,没有就加上)

img {

.func_transition;

.func_transition(@duration: 1s);

.func_transition(opacity, .3s, ease, 0s);

}

}

复制代码

darken函数

话不多说直接看代码,看图

点击

LESS样式

@C1:pink;

.btn {

width: 100px;

height: 50px;

background: @C1;

&:hover {

background: darken(@C1, 20%);

}

}

复制代码

鼠标滑过之前c13cd59816de65e1ce70ff1af2b8d26d.png

鼠标滑过之后,颜色变成深20%;

367a302105ea822b441175124af9a413.png

lighten函数

它增加了元素中颜色的亮度。 它有以下参数:

color :它代表颜色对象。

amount :它包含0 - 100%之间的百分比。

方法:它是可选参数,通过将其设置为相对,用于相对于当前值进行调整。

@C1:pink;

.btn {

width: 100px;

height: 50px;

background: @C1;

&:hover {

background: lighten(@C1, 50%);

}

}

复制代码

鼠标滑过之前2f2293c5307c187bc55c6a17ab9e6a6c.png

鼠标滑过之后,颜色变成浅,跟darken刚好相反;

b4a3a34841f1271a3259fd10c85cfe79.png

.loop() when ()

.loop(@n) when (@n<=4){

.loop(@n+1);

.column-@{n}{

width:unit(@n*10,%);

}

}

.loop(1);

// 初始值为@n=1,条件@n<=4;符合条件,每次循环@n+1;.column 每一个width:@n*10%;

// 编译后的CSS

.column-4 {

width: 40%;

}

.column-3 {

width: 30%;

}

.column-2 {

width: 20%;

}

.column-1 {

width: 10%;

}

复制代码

LESS样式转译为CSS

在NODE环境下,找到less存放文件处,文件栏输入cmd回车,输入密令lessc xxx.less xxx.css / -x

xxx.less 指需要编译的less文件名

xxx.css 指编译后存放的css文件名

-x 指压缩文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值