前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >less的基本语法

less的基本语法

原创
作者头像
Java学术趴
发布2022-08-15 23:38:36
5170
发布2022-08-15 23:38:36
举报
文章被收录于专栏:Java全栈·

👨‍🎓作者:Java学术趴 🏦仓库:GithubGitee ✏️博客:CSDN掘金InfoQ云+社区 💌公众号:Java学术趴 🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。 🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。微信搜索公众号Java学术趴联系小编。

☠️每日毒鸡汤:这个社会是存在不公平的,不要抱怨,因为没有用!人总是在反省中进步的!

less语法

1 less语法

1.1 less中的变量

使用@来声明一个变量:@color:pink

  • 作为普通属性值来使用:直接使用@pink
代码语言:javascript
复制
// 定义属性值变量,定义变量的时候必须以分号结束,否则找不到该变量
@color:pink;
.myDiv {
  color: @color;
}
复制代码
  • 作为选择器和属性名:#@{selector的值}的形式
代码语言:javascript
复制
// 定义属性名的变量
@m:margin;
.myDiv {
  @{m}: 10px;
}
​
// 定义标签选择器的变量
@selector:warp;
#@{selector} {
  @{m}: 10px;
}
​
.@{selector} {
  @{m}: 10px;
}
复制代码
  • 作为URL:@{url}
  • 变量的延迟加载 : less中的变量都是延迟加载的。
代码语言:javascript
复制
// 变量的延迟加载
@var: 0;
.class {
  @var: 1;
    .brass {
      @var: 2;
      // 如果是顺序执行的,那么此时 size 的值应该是2
      // 但是在less中存在变量的延迟加载,变量的赋值会等作用域中所有的数据加载完毕才会赋值
      // 所以此时这个值就是 3
      size: @var; // 3
      @var: 3;
    }
  size: @var;
}
复制代码

1.2 less的嵌套规则

代码语言:javascript
复制
// less中的嵌套规则
.myDiv {
  margin: 10px;
  background-color: pink;
  // 基本嵌套,直接在一个标签选择器中嵌套一个新的标签选择器即可
  .myDiv2 {
    margin: 20px;
    background-color: yellow;
    // 不进行嵌套,同级使用,需要使用 & 符号,代表和的意思
    &:hover{
      background-color: aqua;
    }
  }
}
复制代码

1.3 less的混合

  • 混合就是将一系列属性从一个规则集引入到另一个规则集的方式。
1.3.1 普通混合
  • 普通混合 : 混合会被编译到css文件中
代码语言:javascript
复制
// less混合的基本使用
// 当两个HTML元素中存在多个一致的元素的时候
// 此时就可以定义一个样式规则提供给他们两个使用
// 此时这个混合会被编译到css文件中
.guize {
  background-color: pink;
  font-size: 10px;
  margin: 10px;
}
​
#myDiv {
  .divOne {
    .guize;
  }
  .divTwo {
    .guize;
  }
}
复制代码
1.3.2 不带输出的混合
  • 不带输出的混合:混合不会编译到css文件中
代码语言:javascript
复制
// 给混合加上小括号之后,这个混合就不会被编译到css文件中
.guize() {
  background-color: pink;
  font-size: 10px;
  margin: 10px;
}
​
#myDiv {
  .divOne {
    .guize();
  }
  .divTwo {
    .guize();
  }
}
复制代码
1.3.3 带参数的混合
  • 带参数的混合 : 可以给混合传递变量,并且不会输出到css文件中
代码语言:javascript
复制
// less可以动态的传递参数
.guize(@w,@h,@c) {
  font-size: @w;
  margin: @h;
  background-color: @c;
}
​
#myDiv {
  .divOne {
    .guize(10px,10px,pink)
  }
  .divTwo {
    .guize(20px,20px,yellow)
  }
}
​
复制代码
1.3.4 带参数并且存在默认值的混合
  • 带参数并且存在默认值的混合:如果不给定实参,那么就会使用默认值,给定实参之后会覆盖默认值。
代码语言:javascript
复制
// less可以动态的传递参数
.guize(@w:10px,@h:10px,@c:pink) {
  font-size: @w;
  margin: @h;
  background-color: @c;
}
​
#myDiv {
  .divOne {
     // 上边给了默认值这里不给值会使用默认值
    .guize()
  }
  .divTwo {
    // 如果给定了新的实参值,那么会覆盖默认的
    .guize(20px,20px,yellow)
  }
}
复制代码
1.3.4 命名参数
  • 命名参数:指定实参给哪个形参进行赋值,解决当实参和形参的个数不一致的问题。
代码语言:javascript
复制
// less可以动态的传递参数
.guize(@w:10px,@h:10px,@c:pink) {
  font-size: @w;
  margin: @h;
  background-color: @c;
}
​
#myDiv {
  .divOne {
     // 上边给了默认值这里不给值会使用默认值
    .guize()
  }
  .divTwo {
    // 如果这里的实参只给定一个,那么他会按照顺序进行赋值,也就是把yellow赋值给@w变量
    // 但是我们想把这个颜色赋值给最后的 @c , 所以我们此时使用命名参数
    // 使用命名参数指定将 yellow 赋值给哪个变量
    .guize(@c:yellow)
  }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • less语法
    • 1 less语法
      • 1.1 less中的变量
      • 1.2 less的嵌套规则
      • 1.3 less的混合
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档