Less的基本语法

这篇具有很好参考价值的文章主要介绍了Less的基本语法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

less的每一个语句后必须使用";"结束,否则可能无法正确的转换成css

1、导入

即在当前less文件中引用其它less文件,被引入的less文件中的内容可以在此less文件中使用。在引用less文件时可以省略扩展名

@import "global"; // global.less 
@import "comm.less";
@import "index.css";

2、注释

less的注释有两种,

一种为单选注释,以“//”开头,“//”后的内容为注释的内容

//  @import 'comm';

另一种为多行注释,以“/*”开头,以“*/”结束,中间的内容为注释的内容

/* 
@import 'comm.less'; 
 */

3、嵌套

嵌套是指子或后代元素的选择器可以定义在父或祖先元素的选择器中

1)嵌套的使用

<ul>
    <li><a href="#"">链接1</a></li>
    <li><a href="#">链接2</a></li>
    <li><a href="#">链接3</a></li>
</ul>
ul{
	list-style: none;
	li{   //后代
		border:1px solid red;
		height: 30px;
		>a{  //子
			color:#fff;
		}
	}
}

以上代码转换成css后为以下代码

ul {
  list-style: none;
}
ul li {
  border: 1px solid red;
  height: 30px;
}
ul li > a {
  color: #fff;
}

2)引用父或祖先选择名称

在内部使用”&“可以引用外部选择器的名称

li{
    &:hover{
        >a{
	    color:blue;
	}
    }
    &-a{
	color: green;
    }
}

以上代码转换成css后为以下代码

li:hover >a {
    color:blue;
}
li-a{
    color: green;
}

4、扩展

扩展使用:extend关键字,通过扩展可以把一个选择器与其它已存在的选择器组成并集,而它自己定义的样式会单独为一个选择器

div{
	height: 30px;
}
p:extend(div){
	whidth:30px;
}

以上代码转换成css后为以下代码

div, p {
  height: 30px;
}
p {
  whidth: 30px;
}

5、混合(mixin)

即一个选择器中直接引用另一个选择器的名称,可以把另一个选择器中的样式直接复制过来。但要注意,被引用的选择器只能是类或是id选择器

.div{
	height: 30px;
}
p{
	.div();
	width:30px;
}

以上代码转换成css后为以下代码

.div{
	height: 30px;
}
p {
  height: 30px;
  width: 30px;
}

6、声明变量

变量的声明和使用有以下几个特点

1)变量名总是以@开头,定义的变量要以在整个less文件任意地方使用,

2)如果在引用时需要与其它内容拼接,则需要使用@{变量名}的语法来引用。

3)变量可以进行算术运算。

4)如果变量的值本身包含特殊符号,如空格等,可以使用引号括起来。但前面在加上”~“

@width: 10px;
@height: @width + 10px;
@a: acitve;
@color: fff;
@border : ~'1px solid #000';

ul{
	.@{a}{
		height: @height;
		line-height: @height;
		width: @width * 2;
		color: '#@{color}';
        border: @border;
	}
}

以上代码转换成css后为以下代码

ul .acitve {
  height: 20px;
  line-height: 20px;
  width: 20px;
  color: '#fff';
   border: 1px solid #000;
}

7、变量作用域

变量可以less文件中定义,这种变量称为全局变量,也可以在一个选择器中定义,这种变量称为局部变量。全局变量可以在整个less文件中使用,但局部变量只能在当前选择器中使用。当全局变量和局部变量重名时,按照就近原则会使用局部变量。在变量的作用域中,变量的声明和使用的顺序没有关系。可以先声明变量再使用,也可以先使用再声明变量

@var : 10px;
.header{
	height: @var;	
	@var :20px;
	img{
		height: @var;
	}
}

以上代码转换成css后为以下代码

.header {
  height: 20px;
}
.header img {
  height: 20px;
}

8、函数

函数可以通过传入参数,生成不同的结果,参数名与变量的命名规则相同,如果要设置默认值,可以在变量名后使用”:“来定义。函数名只能以”.“或是”#“开头

.fun(@w,@h : 20px,@c){
	height: @h;
	line-height: @h;
	width: @w;
	border :1px solid @c;
}

.@{a}{
	.fun(10px,20px, #000);
}

以上代码转换成css后为以下代码

.acitve {
  height: 20px;
  line-height: 20px;
  width: 10px;
  border: 1px solid #000;
}

9、条件结构

函数可以使用when 关键字指定是否执行,如果when的结果为true,函数会被执行,如果为false,函数将不会被执行。

示例文章来源地址https://www.toymoban.com/news/detail-733848.html

函数名(参数) when (条件表达式)

示例

/* 当参数@load的值为true时,函数才会被执行 */
.fun(@height,@load) when (@load = true){
    height : @height;
    line-height : @height;
}

.active{
    width : 100%;
    .fun(30px,true); /* 执行函数生成代码 */
}

注意:

1)when与小括号之间必须有空格

2)when后可以执行条件比较,如等于(=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)

/* 当@height大于等于30时,执行函数 */
.fun(@height) when ((@height >= 30px){ 
    height : @height;
    line-height:@height
}

.active{
    width:50px;
    .fun(30px);
}

3)多个括号之间可以使用and(并且)、or(或者)来组合多个条件,也可以使用","(或者)来组合多个条件

/* 当@height大于20 并且 小于 40时,执行函数 */
.fun(@height , @center) when (@height > 20px) and (@height < 40px) {
    height : @height;
    line-height:@height
}

.active{
    width:50px;
    .fun(30px);
}

4)当and和or同进使用时,and的优先级比or高,可以使用括号来提升优先级

/* 当@center为true时,或者@height大于20 并且 小于 4时,执行函数 */
.fun(@height , @center) when (@center = true) , ((@height > 20px) and (@height < 40px)){
    height : @height;
    line-height:@height
}

.active{
    width:50px;
    .fun(30px);
}

5)可以使用not来表示非。

/* 当@height不等于20时,执行函数 */
.fun(@height) when not (@height = 20px){
    height : @height;
    line-height:@height
}

.active{
    width:50px;
    .fun(10px);
}

10、循环

less本身没有专门的循环结构,但可以使用条件结构来实现,即在函数中调用自己,并在函数中改变when的值,直到条件不成立。结束函数的执行。这种结构相当于递归。

示例

.fun(@i) when (@i  <= 4){  
    width: @i;
    .fun(@i + 1); /*每次加1再传到函数,当传的值大于4的时候函数结束*/
    
}

.active{
    width:50px;
    .fun(1);
}

到了这里,关于Less的基本语法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端 | ( 十二)CSS3简介及基本语法(中)| 变换、过渡与动画 | 尚硅谷前端html+css零基础教程2023最新

    学习来源 :尚硅谷前端html+css零基础教程,2023最新前端开发html5+css3视频 系列笔记 : 【HTML4】(一)前端简介 【HTML4】(二)各种各样的常用标签 【HTML4】(三)表单及HTML4收尾 【CSS2】(四)CSS基础及CSS选择器 【CSS2】(五)CSS三大特性及常用属性 【CSS2】(六)CSS盒子模型

    2024年02月16日
    浏览(33)
  • HTML5和CSS3七CSS3四

    代码下载地址 Transision过渡动画是从一个状态到另一个状态,而Animation动画可以有多个关键帧 animation-name:设置动画ID animation-duration:设置动画总时长 animation-timing-function:设置动画时间函数,同过渡动画 animation-iteration-count:设置动画播放次数,默认1次,可以是具体次数也可

    2023年04月23日
    浏览(43)
  • CSS3与HTML5

    box-sizing content-box:默认,宽高包不含边框和内边距 border-box:也叫怪异盒子,宽高包含边框和内边距 动画:移动translate,旋转、transform等等 走马灯:利用动画实现animation:from… to… 隐藏元素: visibility:hidden 占位 display:none 不占位 画页面前重置浏览器自带样式 快格式化上

    2024年02月07日
    浏览(31)
  • 【前端面经】CSS-less/sass/scss的区别和基本使用

    随着Web开发的不断发展,CSS预处理器变得越来越流行。它们为Web开发者提供了一种更高效、更简便的CSS编写方式。Less、Sass以及SCSS作为最受欢迎的三种CSS预处理器,它们都为CSS编写提供了不同的特点和功能。 在本篇博客中,我们将会探讨这三种预处理器之间的区别以及它们的

    2024年02月06日
    浏览(41)
  • HTML5和CSS3笔记

    1.1:页面结构: 1.2:标签类型: 1.2.1:块标签:  1.2.2:行内标签: 1.2.3:行内块标签: 1.2.4:块标签与行内标签的转换: (可以设置在不在同一行和隐藏) 1.3:表单与表格标签:   表单:    表格:   1.4:H5标签: 1.4.1:语义标签:   1.4.2:多媒体标签: (音频audio和视

    2024年03月24日
    浏览(43)
  • html5和css3的新特性

    标签         !-- 高亮 mark --         !-- 摘要概述 --         details             summary                 咖啡             /summary             ul                 li拿铁/li                 li美式/li             /ul         /details           

    2024年02月11日
    浏览(34)
  • HTML5CSS3提高

    HTML5 的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题,基本是 IE9+ 以上版本的浏览器 才支持,如果不考虑兼容性问题,可以大量使用这些新特性。 以前布局,我们基本用 div 来做。div 对于搜索引擎来说,

    2024年02月14日
    浏览(38)
  • 尚硅谷html5+css3(3)布局

    1.文档流normal flow -网页是一个多层结构 -通过CSS可以分别为每一层设置样式 -用户只能看到最顶层 -最底层:文档流(我们所创建的元素默认都是从文档流中进行排列) 2.盒子模型   1.盒子模型-边框 2.盒子模型-内边距 3.盒子模型-外边距 4.盒子模型-水平方向的布局 5.盒子模型

    2024年04月09日
    浏览(55)
  • HTML5+CSS3实现小米商城 (完整版)

    对于小米商城,也是自己初学前端的一个小作品吧,这个网页大概写了有三四天吧,总体感受就是写着还行,只要有耐心,就一定能成功。 毕竟第一次做,代码写的可能比较乱,命名可能也不是太规范,以后多加改正。 基本还原了原网页,并且只用到了CSS3和HTML5。 链接:

    2024年02月04日
    浏览(40)
  • h5(html5)+css3前端笔记二

    一、表格标签 表格的主要作用: 表格主要用于 显示、展示数据 ,因为它可以让数据显示的非常的规整,可读性非常好。特别是后台展示数据的时候,能够熟练运用表格就显得很重要。一个清爽简约的表格能够把繁杂的数据表现得很有条理。 1. table/table 用来定义表格的标签

    2024年02月14日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包