less学习

本文详细介绍了Less预处理语言的主要特性,包括注释、父子关系嵌套、变量、其他语法(如&符号的使用、extend和mixin)以及混合函数的运用。Less允许开发者编写更简洁、可维护的CSS代码,例如使用变量简化样式重复,通过嵌套提升代码可读性,以及利用混合函数实现代码复用。通过实例展示了如何将Less编译成CSS,并强调了@import在组织和整合多个Less文件中的作用。

一、less 简介

less是一门css的预处理语言

  • less是一个css的增强版,通过less可以编写更少的代码实现更强大的样式
  • less中添加了许多的新特性:像对变量的支持、对mixin的支持…
  • less的语法大体上和css语法一致,但是less中增添了许多对css的扩展,所以浏览器无法直接执行less代码,要执行必须向将less转换为css,然后再由浏览器执行

二、less 语法

2.1 less注释

  • //开头的注释不会被编译到css文件中
  • /**/包裹的注释会编译到css文件中

2.2 父子关系嵌套

less中,父子关系可以直接嵌套

.box1 {
  background-color: #bfa;

  .box2 {
    background-color: red;

    &:hover {
      background: aqua;
    }
  }
}

加了&后就不会将后面的内容当做下一层去编译

对应的css:

.box1 {
  background-color: #bfa;
}
.box1 .box2 {
  background-color: red;
}
.box1 .box2:hover {
  background: aqua;
}

2.3 变量

在变量中可以存储一个任意的值,并且我们可以在需要时,任意的修改变量中的值

变量的语法:@变量名

  • 直接使用使用变量时,则以@变量名的形式使用即可
  • 作为类名、属性名或者一部分值使用时,必须以@{变量名}的形式使用
  • 可以在变量声明前就使用变量(可以但不建议)
@b1:box1;
@b2:box2;
@b3:box3;
@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");
}

.@{b2}{
  width: @size;
  height: $width;
    @{bc}: @color;
    @{bi}: url("@{path}/2.png");
}

.@{b3}{
  width: @size;
  height: $width;
    @{bc}: @color;
    @{bi}: url("@{path}/3.png");
}

对应的css:

.box1 {
  width: 200px;
  height: 200px;
  background-color: red;
  background-image: url("image/a/b/c/1.png");
}
.box2 {
  width: 200px;
  height: 200px;
  background-color: red;
  background-image: url("image/a/b/c/2.png");
}
.box3 {
  width: 200px;
  height: 200px;
  background-color: red;
  background-image: url("image/a/b/c/3.png");
}

2.4 其他

div {
  //& 拼接
  &:hover {
    background-color: blue;
  }
}

.p1{
  width: 100px;
  height: 100px;
}

//:extend()对当前选择器扩展器扩展指定选择器的样式(选择器分组)
.p2:extend(.p1){
  color: red;
}

.p3{
  //直接对指定的样式进行引用,这里就相当于将p1的样式在这里进行了复制
  //mixin混合
  .p1();
  color: blue;
}

//使用类选择器时可以在选择器后添加一个括号,这时我们实际上就创建了一个mixins
.p4(){
  width: 100px;
  height: 100px;
}

对应的css:

div:hover {
  background-color: blue;
}
.p1,
.p2 {
  width: 100px;
  height: 100px;
}
.p2 {
  color: red;
}
.p3 {
  width: 100px;
  height: 100px;
  color: blue;
}

2.5 混合函数

在混合函数中可以直接设置变量,并且可以指定默认值

.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;
}

average混合函数

.h1{
  color:average(red,yellow);
}

对应的css:

.h1 {
  color: #ff8000;
}

darken混合函数

body{
    background-color: darken(#bfa, 50%);
}

对应的css:

body{
    background-color: #22aa00;
}

三、补充

创建all.less文件,将我们之前编写的less文件通过@import引入进来,可以通过import来将其他的less引入到当前的less

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

查看生成的all.css代码,会发现其他的内容囊括了两个less文件的内容,所以,我们可以利用@import来对less文件进行整合,然后引入生成的css文件使用即可。这样,每次修改的时候直接对某个模块的less文件进行修改,就会非常简单

如果我们观察过之前fontawesome源码文件,会发现其中也有less代码文件
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HuCheng1997

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值