前端模拟面试练习提升题
1.初识less
less作为一门CSS扩展语言,也就是说CSS预处理器。(Leaner Style Sheets)简称less,它只不过是为css新增这些的功能,比如说:变量、函数、作用域等等。它的优点是:更具有维护性、扩展性等,可以降低了维护的成本,根据按这样的话,那么less可以让我们写更少的代码做更多的事情。
和css相比下,css的语法非常简单,而且对开发者来说要求比较低,比较合适小白者,但是遇到有些问题,比如没有这种变量、函数等等,的确还不如less的扩展性,需要写大量的代码,但是看眼中的确没有逻辑的代码,CSS冗余度是比较高的。不方便维护,不利于复用,而且没有计算的能力。
如果对css有基础的话,less很容易上手的。因为css和less区别不大的,反正可以通过编译生成浏览器能识别的css文件。
2.less使用
这个less使用不用复杂,就是新建一个后辍名为less文件即可,然后在less文件使用less语句,当写完less语句编译后就会自动生成多了一个后辍名为css文件即可。
3.less和css简单的语句区别
style.less
style.css
相比一下,还是感觉less语句的代码比较舒服,以上代码内容就是叫嵌套写法,这样的话大大减少了代码量,less代码看起来更加清晰。
4.less语法
注意:最好尽量用全局变量,避免无法复用!比如我写变量(Height)在contain{}里面,但却row{}里面的变量不存在,导致出错,这是叫局部变量。
4.1.2选择器和属性名
这个选择器和属性名可以均作为变量
语法:@选择器的名:属性名;
// 2.作为选择器和属性名 @Mycontain:width; .@{Mycontain}{//选择器 height:300rpx; @{Mycontain}:200rpx;//属性名 }
4.1.3作为URL
使用时候,使用“ ”将变量的值扩起来,使用同样将变量以@{变量名}的方式使用;
语法:@变量:作路径;
less:
// 3.作为URL @img-url:"../imgs/idnex"; img{ background-image: url("@{img-url}/shouye.png"); }
编译后的css:
4.1.4延迟加载
什么是延迟加载?变量是延迟加载的,在使用前不一定要预先声明。
语法:@变量1:@变量2;
@变量2:9%;
less:
编译后的css:
4.1.5定义多个相同名称的变量时
在定义一个变量两次时,只会使用最后定义的变量,less会从当前作用域向上搜索(比如就是从下往上搜索)。这个行为类似于CSS的定义中始终使用最后定义的属性值。
less:
.class{ @var:1; @var:2;//选中的搜索 .brass{ @var:2; three:@var;//结果为three:4; @var:3; @var:4;//选中的搜索 } one:@var;//结果为one:2; } 编译后的css: .class { one: 2; } .class .brass { three: 4; }
5.1混合(mixins)
5.1.1 普通混合
混合就是一种将一系列属性从一个规则引入(“混合”)到另一个规则集的方式。这个意思是在less中定义的选择器类可以直接放入其他选择器类里面,这种重复使用很强。
less:
//1.普通混合 .bor{ background-color: aqua; width: 32rpx; } .poop{ color:white; .bor; } .boom{ height:200rpx; .bor; } 编译后的css: .bor { background-color: aqua; width: 32rpx; } .poop { color: white; background-color: aqua; width: 32rpx; } .boom { height: 200rpx; background-color: aqua; width: 32rpx; }
5.1.2不带输出的混合
如果你想要创建一个混合的类,但是我不想让它输出到css的样式并显示。
只要类的名字后面加上括号,就可以实现的,这样不会到css样式中显示!
less:
编译后的css:
在css样式中实现不显示.mymix-echa()类。
5.1.3带选择器的混合
这个带选择器,可以放入选择器。
语法:{&:选择器}
less:
编译后的css:
5.1.4带参数的混合
带参数就是传递参数。
语法:类的名称(形参){}
less:
编译后的css:
那如果形参如何使用默认值呢?
形参是可以默认值,这样不需要传递参数,如下:
less:
编译后的css: