文章目录
  1. 1. less简介
  2. 2. 语法

css预处理,趁这几天有空,了解一下css预处理的知识,为task4打一点基础。

less简介

Less 是一个Css 预编译器,意思指的是它可以扩展Css语言,添加功能如允许变量(variables),混合(mixins),函数(functions) 和许多其他的技术,让你的Css更具维护性,主题性,扩展性。

Less 可运行在 Node 环境,浏览器环境和Rhino环境.同时也有3种可选工具供你编译文件和监视任何改变。

语法

  • 变量

    声明一个变量:



    @width:100px;
    .test {
    width: @width;
    }

  • 混合


.border {
    border: 1px solid red;
}

.test {
    width: @box_width;
    height: 100px;
    background: #ccc;
    .border;  //直接混合使用
}    

  • 嵌套

正常写法

.test {
  font-size: 10px;
}
. test a {
  color: red;
}

less 写法:

.test {
   font-size: 10px;
a {
  color: red;
  }
}

同样可以包含伪类:

.test {
    font-size: 10px;
    a {
       &:hover {
          color: blue;
       }
      color: red;
    }
}
  • 运算

@width: 5px;
.test {
 width: @width + 10;  //15px
}

less能推断此处的单位

  • 函数

.border_radius(@width:5px) { //5px是可选参数,表示默认值
    -webkit-border-radius: @width;
    -moz-border-radius: @width;
    -ms-border-radius: @width;
    border-radius: @width;
}

.test {
    .border_radius(20px);  
}

  • 命名空间
    
    .bundle {
    .button {
     display: block;
     border: 1px solid black;
     background-color: grey;
     &:hover {
       background-color: white
     }
    }
    }
    
    

//现在如果我们想在 .header a 中混合 .button 类,那么我们可以这样做:

.header a {
  color: orange;
  .bundle > .button;
}
  • 作用域

@var: red;
.page {
  #header {
    color: @var; // white
  }
  @var: white;
}

  • 避免编译

.test {
    width: ~'calc(300px - 30px)';
}

  • 注释

//不会被编译css
/**/会被编辑到css

更多使用语法,请查看less中文网。
http://lesscss.net/

文章目录
  1. 1. less简介
  2. 2. 语法