less的基本使用

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

一、less语法

1. 变量

1.1 基础用法

语法:@变量名: 值;

less:

// 1. 定义变量(全局变量)
@bgColor:white;
@Height:50rpx;
.contain{
    background-color: @bgColor;
 
}
.row{
    height:@Height;
    margin-left:@Height;
}   

编译后的css:

.contain {
  background-color: white;
}
.row {
  height: 50rpx;
  margin-left: 50rpx;
}

注意
最好尽量用全局变量,避免无法复用!
比如我写变量@Height:50rpx;contain{}里面,而row{}里面的@Height变量不存在,导致出错,这是叫局部变量。

1.2 变量用作属性名

语法:@变量名: 属性名;

less:

// 定义变量(属性名)
@bg-img:background-image;

div{
  @{bg-img}:路径;
} 

编译后的css:

div {
  background-image: 路径;
}

1.3 变量用作类名

语法:@变量名: 类名;

less:

//定义类名
@demo:newClass;

.@{demo}-new{ // "-new"在类名基础上,新的类名 newClass-new
   @bg:rgb(0,0,0);
   background:@bg;
}
//div使用此类名
<div class="newClass-new">
	<p>demo</p>
</div>

编译后的css:

.newClass-new {
  background: rgb(0,0,0);
}

1.4 变量用作链接

语法:@变量名: 路径;

less:

// 链接可以为任何链接*注意放置的位置
@bg-img:"路径";

header{
  background:url(@bg-img);
}

编译后的css:

header {
  background: url("路径");
}

1.5 定义多个变量

定义 同一变量名称(名字)两次或多次后,less只会选择最后定义的!

less:

@bg-img:"路径1";
@bg-img:"路径2";
@bg-img:"路径3";

header{
    background:url(@bg-img);
}
//  结果为:background: url("路径3");

2. 混合

混合就是一种将一系列属性从一个规则引入(“混合”)到另一个规则集的方式。这个意思是在less中定义的选择器类可以直接放入其他选择器类里面,这种重复使用很强。

2.1 普通混合

less:

//1.普通混合
.bor{
    background-color: aqua;
    width: 32rpx;
}
.poop{
    color:white;
    .bor;
}

编译后的css:

.bor {
  background-color: aqua;
  width: 32rpx;
}
.poop {
  color: white;
  background-color: aqua;
  width: 32rpx;
}

2.2 不输出到css的混合

如果你想要创建一个混合的类,但是我不想让它输出到css的样式并显示。

只要类的名字后面加上括号,就可以实现的,这样不会到css样式中显示!

less:

// 2.不带输出的混合
.mymix{
    color:black;
}
.mymix-echa(){//css样式中不显示
    background-color: white;
 
}
.dad{
    width: 30rpx;
    height:30rpx;
}

编译后的css:

.mymix {
  color: black;
}
.dad {
  width: 30rpx;
  height: 30rpx;
}

在css样式中实现不显示.mymix-echa()类。

2.3 带选择器的混合

语法:{&:选择器};

less:

//3.带选择器的混合
.father(){
    &:hover{
        background-color: white;
        font-size:32px;
    }
}
 
.child{ // 编译后的类名字后面多了:hover
    .father;
}
.son{ // 编译后的类名字后面多了:hover
    .father;
}

编译后的css:

.child:hover {
  background-color: white;
  font-size: 32px;
}
.son:hover {
  background-color: white;
  font-size: 32px;
}

2.4 带参数的混合

语法:类的名称(形参){};

less:

// 4.带参数的混合
.son(@width){
    width:@width;
}
.dad{
    .son(300px);//需要传一个参数进去
}

编译后的css:

.dad {
  width: 300px;
}

2.5 参数有默认值的混合

语法:类的名称(形参){};

less:

//5.带参数的混合默认值
.son(@width:200px){
    width:@width;
}
.dad{
    .son();
}

编译后的css:

.dad {
  width: 200px;
}

2.6 多个参数的混合

一个组合可以带多个参数,参数之间可以使用分号或者逗号来分割。
但是建议尽量使用分号来分隔,因为这逗号可以编译为参数分割或者css为列表分割。

less:

//6.带多个参数的混合
.mini(@color;@padding:xxx;@margin:2){
    color-1:@color;
    padding-2:@padding;
    margin-3:@margin;
}
.div{
    .mini(1,2,3;something, ele);
}

编译后的css:

.div {
  color-1: 1, 2, 3;
  padding-2: something, ele;
  margin-3: 2;
}

2.7 arguments变量

arguments变量表示可变参数,意思是形参从先到后的顺序。
注意:这个是参数值位置必须是一一对应。

less:

//7.arguments变量
.son3(@dd1:20px;@dd2:solid;@dd3:white){
    border:@arguments;
}
.div4{
    .son3();
}

编译后的css:

.div4 {
  border: 20px solid white;
}

2.7 得到混合中的 运算变量 的 返回值

就像调用函数一样的过程。

less:

//8.得到混合中变量的返回值
.ave(@x,@y){
    @ave:(@x+@y);
}
.son{
    .ave(20px,40px);
    width:@ave;
}

编译后的css:

.son {
  width: 60px;
}

分析代码过程:
1.首先把二个参数分别为20px和40px传到.ave(@x,@y);
2.在.ave{}里面获取了两个值并进行计算结果,然后给变量@ave;
3.在.son{}中调用了@ave的值;
4.最后生成了编译后css的结果width为60px。

3. 嵌套规则

3.1 基础用法

less:

//10.嵌套规则
.contain{
  .dad{
      width:30px;
      background-color: #fff;
      .son{
          border-radius: 40px;
      }
  }  
  .dad1{
      height:300px;
      background-color: black;
  }
}

编译后的css:

.contain .dad {
  width: 30px;
  background-color: #fff;
}
.contain .dad .son {
  border-radius: 40px;
}
.contain .dad1 {
  height: 300px;
  background-color: black;
}

3.2 父元素选择器&

表示当前选择器的所有父选择器,使用&符引用选择器的名。

less:

//11.父元素选择器&
.bgcolor{
    background: black;
    a{
        color:#fff;
        &:hover{
            color:blue;
        }
    }
}

编译后的css:

.bgcolor {
  background: black;
}
.bgcolor a {
  color: #fff;
}
.bgcolor a:hover {
  color: blue;
}

3.3 改变选择器的顺序&

如果将当前的选择器名字后面放在&,就会当前的选择器提到父级。

less:

// 12.改变选择器的顺序&
.contain{
    h1&{
        width:200px;
        height:300px;
    }
}
 
#son{
    ul{
        li{
            .contain&{
                height:100px;
                background-color: #fff;
            }
        }
    }
}

编译后的css:

h1.contain {
  width: 200px;
  height: 300px;
}
.contain#son ul li {
  height: 100px;
  background-color: #fff;
}

4. 运算

注意:
运算符与值之间必须以空格分开,涉及优先级时可以以()进行优先级运算。

less:

// 13.运算
.contain{
    font-size:300px+200*2;
}

编译后的css:

.contain {
  font-size: 700px;
}

5. 命名空间

将一些需要的混和 组合在一起,可以通过嵌套多层id或者class来实现。

当我们拥有了大量选择器的时候,特别是团队协同开发时,如何保证选择器之间重名问题?此时就需要命名空间

#mynamespace() { //加 () 表示不输出到css
   .home {...}
   .user {...}
}

我们定义了一个名为 mynamespace 的命名空间,
如果我们要复用 user 这个选择器的时候,
在需要混入这个选择器的地方,只需使用 #mynamespace > .user 就可以了。

将一个选择集其中的一部分拿出来,只采用这一部分数据操作

less:

#bgcolor(){ // 加()默认不输出
    background: #ffffff;
    .a{
        color: #888888;
        &:hover{
            color: green;
        }
        .b{
            background: red;
        }
    }
}
.bgcolor1{
    background: yellow;
    #bgcolor>.a;    // > 符号表示选中混合中的每一个样式
}
.bgcolor2{
    // #bgcolor>.a>.b;
    #bgcolor .a .b;  // 省略写法:将>换成空格即可
}

编译后的css:

.bgcolor1 {
  background: yellow;
  color: #888888;
}
.bgcolor1:hover {
  color: green;
}
.bgcolor1 .b {
  background: red;
}
.bgcolor2 {
  background: red;
}

6. 作用域

首先会在局部查找变量和混合,如果没找到,编译器会在父作用域中查找,以此类推。

7. 引入

可以引入一个或多个.less文件,然后这个文件中的所有变量都可以在当前的less项目中使用!

语法:@import 'less文件路径';

比如:有一个main.less文件,如何引入项目中

7.1 main.less

@baby:300px;

7.2 index.less

//16.引入
@import "../main"; //引入main.less文件
 
.contain-qq{
    width:@baby;
}

7.3 编译后的css

.contain-qq {
  width: 300px;
}

7.4 引入可携带参数

@import "main.less";
@import (reference) "main.less";  //引用LESS文件,但是不输出
@import (inline) "main.less";  //引用LESS文件,但是不进行操作
@import (once) "main.less";  //引用LESS文件,但是进行加工,只能使用一次
@import (less) "index.css";  //无论是什么格式的文件,都把它作为LESS文件操作
@import (css) "main.less";  //无论是什么格式的文件,都把它作为CSS文件操作
@import (multiple) "../main.less";  //multiple,允许引入多次相同文件名的文件
@import (multiple) "../main.less";  //multiple,允许引入多次相同文件名的文件

二、vue 配置less全局变量

参考:https://blog.csdn.net/qq_42493241/article/details/120021001文章来源地址https://www.toymoban.com/news/detail-767742.html

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

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

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

相关文章

  • 前端实现动态切换主题色-使用 css/less 动态更换主题颜色(换肤功能)或通过单击更改背景颜色

    提示: 以下是本篇文章正文内容,主要描述 使用 css/less 动态更换主题色(换肤功能) 提示: 使用 css/less 动态更换主题色(换肤功能), 方法共通,不限制技术栈: 其实在日常项目开发中经常会遇到有些用户想要一些自定义的的主题色来满足不同的视觉需求,这时候就需

    2024年02月15日
    浏览(61)
  • 【Vue】全局变量的定义及使用

    首先 声明Vue 使用全局变量的方法有很多,以下只是个人觉得比较简洁的2种。其中两者的第一步操作相同,即: 方法1:在main.js中直接将全局变量挂载到Vue.prototype 用时不用任何多余操作,直接调用 this.GLOBAL.name 即可。 方法2:在需要使用全局变量的页面引入global再使用

    2024年02月12日
    浏览(53)
  • 在vite+vue3项目中配置使用css预处理器(less/sass)以及路径别名

    vite已经将这些预处理器的loader内置了,我们不用再像在webpack项目中那样,需要下载和配置一堆相关的loader,我们只需要下载less,sass依赖,就能直接在项目中使用啦 使用npm或者yarn来安装以下依赖: Less预处理器: npm install -D less Sass预处理器: npm install -D sass 如图,下载之后

    2024年02月11日
    浏览(99)
  • 前端三大Css处理器之Less

    Less是Css预处理器之一,分别有Sass、Less、Stylus这三个。         Less https://lesscss.org/         Less 是用JavaScript编写的,事实上,Less是一个JavaScript库,他通过混合、变量、嵌套和规则设置循环扩展了原生普通Css的功能。 Less的少数缺点之一是它 不支持函数 。 Less的语法与Scss十

    2024年02月10日
    浏览(46)
  • 前端:css less语法 /deep/ 深度影响的用法

    css中通常会在 style 标签内添加 scoped 来避免父组件对子组件的影响,添加了之后只能修改当前组件的样式。 这样做的原理是通过在打包的时候给每个样式都添加一个独一无二的hash值,从而避免父组件对子组件的样式的影响。 添加后控制台显示的样式就会像这样:     设置

    2024年02月12日
    浏览(42)
  • vue3.0全局变量app.config.globalProperties的使用

    app.config.globalProperties是一个用于注册能够被应用内所有组件实例访问到的全局属性的对象。是Vue2中Vue.prototype使用的一种替代,具体用法如下: 1、在组合式api使用: 2、在选项api中使用:

    2024年02月11日
    浏览(32)
  • Vue3使用全局函数或变量的两种常用方式

    例如:想要在index.ts中创建getAction函数,并可以全局使用: 方式一:使用依赖注入(provide/inject) 在main.ts中进行挂载: 在要使用的页面注入: 方式二:使用 app.config.globalProperties 和 getCurrentInstance() app.config.globalProperties:一个用于注册能够被应用内所有组件实例访问到的全局

    2024年02月12日
    浏览(44)
  • 前端css/less绕椭圆轨道旋转动画 带遮挡效果 3D

    效果如图,多个物体在轨道上绕中心物体旋转,当旋转到物体后面时将被遮挡。主要使用css实现,为了简化代码,引入less进行处理。 本质上是使用动画控制轨道带动内部的物体进行旋转,计算出每个物体在椭圆轨道上的位置,使用绝对定位放置物体。由于轨道上物体有多个

    2024年02月03日
    浏览(87)
  • IIS部署vue前端过程(含IIS及相关配置和安装),部署遇到的问题及报错(承接vueconfig.js全局配置环境变量,跨域问题)

    目录 一.IIS使用安装。 二.部署准备工作 三.部署前端(以vue为主) 四.问题与报错 1.HTTP 错误 404.0 - Not Found(需重写路由入口) 2.请求调用不了(需要重写请求地址) 3.地址显示undefined 第一步,打开“ 控制面板 ”,点击“ 网络和Internet ”。 第二步,点击左侧“ 程序 ”,然后点击

    2024年02月08日
    浏览(67)
  • webpack安装和使用及超详细配置一个基本vue项目的全部流程(包括路由、less、引入图片渲染)

    webpack官网: https://webpack.docschina.org/concepts/ 一:搭建一个简单的webpack项目 1:准备工作 需要在node环境才能使用webpack,所以需要先安装node,安装node请自行百度。dddd 如图,我这里使用的是14.17.0版本的 2:初始化项目 首先创建一个文件夹,这里我的命名是myWebpack,然后使用n

    2024年02月02日
    浏览(41)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包