Less

Posted yinrz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Less相关的知识,希望对你有一定的参考价值。

Less

为什么需要Less?CSS需要书写大量看似没有逻辑的代码,不方便维护及扩展,不利于复用,尤其对于非前端开发工程师来讲,往往会因为缺少CSS编写经验而很难写出组织良好且易于维护的CSS代码,造成这些困难的很大原因源于CSS是一门非程序语言,没有变量、函数、scope(作用域)等概念。Less为Web开发者带来了福音,它在CSS的基础之上,引入了变量,Mixin(混入),运算以及函数等功能,大大简化了CSS的编写,并且降低了CSS的维护成本,就像它的名称所说的那样,Less可以让我们用更少的代码做更多的事情。

安装Less

在 Node.js 环境中使用 Less :

npm install -g less

在浏览器环境中使用 Less :

<link rel="stylesheet/less" type="text/css" href="styles.less" />
<script src="//cdnjs.cloudflare.com/ajax/libs/less.js/3.10.0-beta/less.min.js" ></script>

变量

  • 创建 style.less文件,编辑:
@width: 10px;
@height: @width + 10px;

#header {
  width: @width;
  height: @height;
}
  • 命令行输入命令 lessc style.less style.css,将less文件编译成浏览器支持的css文件。渲染结果如下:
#header {
  width: 10px;
  height: 20px;
}

混合

/* 封装样式 */
.border{
  border: 1px solid #ccc;
}

.box{
  .border;  /* 调用样式 */
  width: 100px;
  height: 100px;
}

渲染结果如下:

.border {
  border: 1px solid #ccc;
}


.box {
  border: 1px solid #ccc;
  width: 100px;
  height: 100px;
}

混合传参

/* 函数,样式不会被渲染 */
.bgcolor(@bgcolor){
    background-color: @bgcolor
}

.box2{
    .bgcolor(pink);
      width: 200px;
      height: 200px;
}

渲染结果如下:

.box2 {
  background-color: pink;
  width: 200px;
  height: 200px;
}

混合默认传参

.bgcolor2(@bgcolor:#eee){
    background-color: @bgcolor
}

.box3{
    .bgcolor2();
     width: 300px;
     height: 300px;
}

渲染结果如下:

.box3 {
  background-color: #eee;
  width: 300px;
  height: 300px;
}

@_ 匹配模式

配置基础样式,封装样式:

.triangle(top, @width: 5px, @color: #ccc) {
    border-width: @width;
    border-color: @color transparent transparent transparent;
    border-style: solid dashed dashed dashed;
}

.triangle(right, @width: 5px, @color: #ccc) {
    border-width: @width;
    border-color: transparent @color transparent transparent;
    border-style: dashed solid dashed dashed;
}

.triangle(bottom, @width: 5px, @color: #ccc) {
    border-width: @width;
    border-color: transparent transparent @color transparent;
    border-style: dashed dashed solid dashed;
}

.triangle(left, @width: 5px, @color: #ccc) {
    border-width: @width;
    border-color: transparent transparent transparent @color;
    border-style: dashed dashed dashed solid;
}

.triangle(@_, @width: 5px, @color: #ccc) {
    // @_ 是固定格式,表示不管你匹配到谁,都会带上这些内容
    width: 0;
    height: 0;
    overflow: hidden;
}

调用集成样式,如制作顶部倒三角

.triangle-top {
    .triangle(top, 30px);
}

渲染效果如下:

.triangle-top {
  border-width: 30px;
  border-color: #ccc transparent transparent transparent;
  border-style: solid dashed dashed dashed;
  width: 0;
  height: 0;
  overflow: hidden;
}

运算

包含加减乘的运算,需要用括号拼接,操作的对象主要是数字、颜色、变量等。(颜色一般情况下很少用运算)

@width:3px;

.wrapper{
    width:(@width-0.5)*2; //单位只要有一个带即可
}

@arguments

@arguments可以帮我们自动填充所有变量。

.border_arg(@width: 1.75rem, @color: #e6e6e6, @style: solid) {
    border: @arguments
}

渲染效果如下:

.border_arguments {
  border: 1.75rem #e6e6e6 solid;
}

以上是关于Less的主要内容,如果未能解决你的问题,请参考以下文章

使用bootstrap的原因是啥

less快速入门

less快速入门

十分钟入门less(翻译自:Learn lESS in 10 Minutes(or less))

免费下载全套最新014Less视频教程+教学资料+学习课件+源代码+软件开发工具

less与sass书写--敲代码的伙伴koala(考拉)