Less学习笔记

Less

前言:维护CSS的弊端

CSS是一门非程序语言,没有变量,函数,SCOPE(作用域)等概念。

  • CSS需要书写很多看似没有逻辑的代码,CSS代码冗余度比较高。
  • CSS没有很好的计算能力。
  • 不方便维护,不利于复用。
  • 非前端开发工程师来讲,往往会因为缺少CSS编写经验而很难写出组织良好且易于维护的CSS代码项目。

1. Less 介绍

Less是一门CSS扩展语言,也称为CSS预处理器。
Less 作为CSS的一种扩展,他没有减少CSS的功能,并且在现有CSS的语法基础上,为CSS增加了程序式语言的特性。
Less 在 css 的基础上,引入 变量,mixin(混入),运算以及函数等功能,大大简化了CSS的编写,并且降低了CSS代码的维护成本。
正如其名,less 可以让我们用更少的代码做更多的事情。

Less中文网址:http://lesscss.cn/

常见的CSS预处理器:Sass , Less, Stylus

2.Less 使用

我们首先新建一个后缀为less的文件,在这个less文件里面书写less语句。

  • Less变量
  • Less编译
  • Less嵌套
  • Less运算

2.1 Less 变量

@变量名:值;

变量命名规范

  • @为前缀
  • 不能包含特殊字符
  • 不能以数字开头
  • 大小写敏感

2.2 Less 编译

本质上,Less包含一套自定义的语法及一个解析器,用户根据这些语法定义自己的样式规则,这些规则最终会通过解析器,编译成对应的CSS文件。
所以我们需要把我们的less文件,编译成css文件,这样我们的html页面才能使用。

写好myless.less
保存,自动生成myless.css文件

在这里插入图片描述

2.3 Less 运算

任何 数字,颜色(没错,16进制颜色也可以)或者 变量 都可以参与运算。
Less 提供加 + 减 - 乘 * 除 / 算术运算.

/* Less 里面写 */
@width:10px + 5;
div {
	border:@width solid red;
}
/* 生成的css文件 */
div {
	border:15px solid red;
}
/* less 甚至可以这样写 */
width:(@width + 5) * 2;

在这里插入图片描述
注意:

  • 运算符左右都有空格隔开
  • 如果两个值之间只有一个值有符号,则运算结果就取该值
  • 对于不同单位的值之间的运算,运算结果的值取第一个值的单位
  • 十六进制颜色的运算:background-color: #666 - #444; /* #222 */
  • 混合运算:height: (200px + 50px) * 2;

2.4 Less 嵌套

在css语法中,我们想实现嵌套的话,可以通过 子元素选择器 后代选择器 等实现。
那在Less中如何实现嵌套呢?
如下:

/* less 中的嵌套 */
/*  less中的嵌套 子元素直接写在 父元素里面  */
div{
  height: 100px;
  width: 100%;
  font-size: 14px;
  a{
    font-size: 12px;
  }
}

上面的less代码,经过编译后生成的css代码如下:

/* css中的嵌套 */
div {
  height: 100px;
  width: 100%;
  font-size: 14px;
}
/* css 中的嵌套 通过 后代选择器/子元素选择器。。。 */
div a {
  font-size: 12px;
}

也就是说,less中的嵌套:子元素在父元素的css代码块中书写。
需要注意的有:伪类、伪元素,交集选择器的嵌套语法。如下demo:

错误写法:

/* 注意 伪类/伪元素/交集选择器 在嵌套中的写法 */
/* 如果有 伪类/伪元素/交集选择器 在内层选择器前面要加 & 符号*/
div{
  /* some code... */
  a{
    color: red;
    :hover{
      /* 这样写并不能起效 */
      color: blue;
    }
  }
}

正确写法:

/* 注意 伪类/伪元素/交集选择器 在嵌套中的写法 */
/* 如果有 伪类/伪元素/交集选择器 在内层选择器前面要加 & 符号*/
div{
  /* some code... */
  a{
    color: red;
    &:hover{
      /* 正确写法 在hover前加 & 符号 */
      color: blue;
    }
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值