16 less

less

less 是一门css的预处理语言

  • less 是css的增强版,可以编写很少的代码实现更强大的样式
  • less里面有很多新的特性,如:变量,函数
  • less的语法跟css一致,但是less有很多新的扩展,less文件不能直接被执行,要先转换为css文件进行引用

less 编写的更加方便,less就像一种辅助语法,使用的时候直接转换成css文件引用即可

在vscode中有一个less插件,编写完,插件会自动转换成css文件
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

less语法

注释

//单行注释

// `less`中的单行注释,注释中的内容不会被解析到`css`中

/*
`css`中的注释,内容会被解析到`css`文件中
*/

变量

语法@变量名

  • 直接使用使用变量时,则以@变量名的形式使用即可

  • 作为类名、属性名或者一部分值使用时,必须以@{变量名}的形式使用

  • 可以在变量声明前就使用变量(可以但不建议)

@b1:box1;

@size:200px;
@bc:background-color;
@bi:background-image;
@color:red;
@path:image/a/b/c;

// 类名的使用
.@{b1}{
  width: @size;       //用作变量
  height: $width;
  @{bc}: @color;             //属性名
  @{bi}: url("@{path}/1.png");  //url
}
//注意:在url中使用less语法需要用引号包裹
}

父选择器

& 符号表示当前父元素


less

a {
  color: blue;
  &:hover {
    color: green;
  }
}

css

a {
  color: blue;
}

a:hover {
  color: green;
}

less
还可以直接引用父标识符

.button {
  &-ok {
    background-image: url("ok.png");
  }
}

css

.button-ok {
  background-image: url("ok.png");
}

继承Extend

可以继承某个css选择器的属性
:extend() 对当前选择器扩展指定选择器的样式(选择器分组)

less

nav ul:extend(.inline){
  background: blue;
	/* &:extend(.inline); 也可以这样继承*/
}
.inline {
  color: red;
}

css

nav ul {
  color:red;
  background: blue;
}
.inline {
  color: red;
}

混合(Mixins)

less

.a, #b {
  color: red;
}
.mixin-class {
  .a();
}
.mixin-id {
  #b();
}

css

.a, #b {
  color: red;
}
.mixin-class {
  color: red;
}
.mixin-id {
  color: red;
}

创建混合

注意:自己创建的混合是不会生成css文件的

// 使用类选择器时可以在选择器后边添加一个括号,这时我们实际上就创建了一个mixins
.my-hover-mixin() {
  &:hover {
    border: 1px solid red;
  }
}
button {
  .my-hover-mixin();
}

css文件

button:hover {
  border: 1px solid red;
}

混合函数

//冒号后面是默认值,如果没有传递参数,就用默认值
.test(@w:200px, @h:100px, @bc:red){
  width: @w;
  height: @h;
  background-color: @bc;
}

.p6{
  // .test(200px, 100px, red); // 对应参数位传值
  // .test(@h:200px,@w:100px,@bc:red); // 写明对应属性,可变换顺序
  // .test();
  .test(300px);
}

生成的css

.p6 {
  width: 300px;
  height: 100px;
  background-color: red;
}

自带函数

官方有很多函数,可以查阅使用

  color: saturate(#f04615, 5%);//取这个颜色增加5%
   color:average(red,yellow); //取这两个颜色的中间数

import

我们可以包含其他less文件

这样的好处就是,我们可以把文件模块化分开,比如变量放在一个less,函数放在一个less

需要的时候引入,修改的时候也能快速定位修改

@import "style.less";
@import "syntax.less";

在这里插入图片描述

map文件,帮助定位错误

没有更改之前,我们在浏览器调试看到的只是css文件的错误位置
在这里插入图片描述

如果我们要改,需要找一下,太麻烦了,能不能直接显示less中行号呢?这样我们直接定位到对应less中直接进行修改,维护起来也会比较方便

我们需要在Easy LESS插件中修改settings.json文件,在其中添加如下配置

"less.compile": {
    "compress": true, // true => remove surplus whitespace
    "sourceMap": true, // true => generate source maps (.css.map files)
    "out": true // false => DON'T output .css files (overridable per-file, see below)
}

在这里插入图片描述

修改完毕后,会发现多生成出来一个all.css.map文件,说明配置生效
在这里插入图片描述
再进入浏览器,我们直接可以定位到less文件位置
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值