LESS笔记

  使用LESS可以简化CSS的书写。

  LESS 包含一套自定义的语法及一个解析器,用户根据这些语法定义自己的样式规则,这些规则最终会通过解析器,编译生成对应的 CSS 文件。LESS是在现有 CSS 语法的基础上,为 CSS 加入程序式语言的特性。一个简单的例子:

@color: #4D926F; 

 #header { 

  color: @color; 

 } 

 h2 { 

  color: @color; 

 }

对应的CSS:

#header { 

  color: #4D926F; 

 } 

 h2 { 

  color: #4D926F; 

 }

变量

LESS

@border-color : #b5bcc7; 



 .mythemes tableBorder{ 

   border : 1px solid @border-color; 

 }

对应的CSS

.mythemes tableBorder { 

  border: 1px solid #b5bcc7; 

 }

变量是值级别的复用,可以将相同的值定义起来统一管理。
LESS中也有变量范围:

 @width : 20px; 

 #homeDiv { 

   @width : 30px; 

   #centerDiv{ 

       width : @width;

              } 

 } 

 #leftDiv { 

     width : @width; 



 }

对应CSS

 #homeDiv #centerDiv { 

  width: 30px; 

 } 

 #leftDiv { 

  width: 20px; 

 }

Mixins(混入)
混入指在一个class中引入另一个已经定义的class,如:

.roundedCorners(@radius:5px) { 

 -moz-border-radius: @radius; 

 -webkit-border-radius: @radius; 

 border-radius: @radius; 

 } 

 

 #header { 

 .roundedCorners; 

 } 

 #footer { 

 .roundedCorners(10px); 

 }

对应CSS

#header { 

 -moz-border-radius:5px; 

 -webkit-border-radius:5px; 

 border-radius:5px; 

 } 

 #footer { 

 -moz-border-radius:10px; 

 -webkit-border-radius:10px; 

 border-radius:10px; 

 }

LESS支持 Parametric Mixins(混入参数),如

 .borderRadius(@radius){ 

 -moz-border-radius: @radius; 

 -webkit-border-radius: @radius; 

 border-radius: @radius; 

 } 



 #header { 

 .borderRadius(10px); 

 } 

 .btn { 

 .borderRadius(3px);

 }

对应CSS:

#header { 

 -moz-border-radius: 10px; 

 -webkit-border-radius: 10px; 

 border-radius: 10px; 

 } 

 .btn { 

 -moz-border-radius: 3px; 

 -webkit-border-radius: 3px; 

 border-radius: 3px; 

 }

还可以给Mixins定义默认值:

.borderRadius(@radius:5px){ 

 -moz-border-radius: @radius; 

 -webkit-border-radius: @radius; 

 border-radius: @radius; 

 } 

 .btn { 

 .borderRadius; 

 }

对应CSS:

 .btn { 

 -moz-border-radius: 5px; 

 -webkit-border-radius: 5px; 

 border-radius: 5px; 

 }

LESS的命名空间:

#mynamespace { 

 .home {...} 

 .user {...} 

 }

嵌套规则
HTML:

 <div id="home"> 

 <div id="top">top</div> 

 <div id="center"> 

 <div id="left">left</div> 

 <div id="right">right</div> 

 </div> 

 </div>

LESS:

 #home{ 

   color : blue; 

   width : 600px; 

   height : 500px; 

   border:outset; 

   #top{ 

        border:outset; 

        width : 90%; 

   } 

   #center{ 

        border:outset; 

        height : 300px; 

        width : 90%; 

        #left{ 

          border:outset; 

          float : left; 

          width : 40%; 

        } 

        #right{ 

          border:outset; 

          float : left; 

          width : 40%; 

        } 

    } 

 }

CSS:

 #home { 

  color: blue; 

  width: 600px; 

  height: 500px; 

  border: outset; 

 } 

 #home #top { 

  border: outset; 

  width: 90%; 

 } 

 #home #center { 

  border: outset; 

  height: 300px; 

  width: 90%; 

 } 

 #home #center #left { 

  border: outset; 

  float: left; 

  width: 40%; 

 } 

 #home #center #right { 

  border: outset; 

  float: left; 

  width: 40%; 

 }

LESS 的嵌套规则的写法是 HTML 中的 DOM 结构相对应的,这样使样式表书写更加简洁和更好的可读性。

 

你可能感兴趣的:(less)