清姿
IN A GOOD WAY

  使用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 结构相对应的,这样使样式表书写更加简洁和更好的可读性。

 

posted on 2014-12-17 21:17  清姿  阅读(294)  评论(1编辑  收藏  举报