LESS框架笔记

LESSCSS是一种动态样式表语言,它通过自定义语法和解析器,允许开发者定义样式规则,最终生成CSS文件。本文详细介绍了LESSCSS的客户端与服务器端使用方法,包括变量、Mixins、命名空间、嵌套规则、运算及函数、注释等核心功能,并提供了与SASS的对比分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LESS CSS框架

LESS是动态的样式表语言。本质上,LESS包含一套自定义的语法及一个解析器,用户根据这些语法定义自己的样式规则,这些规则最终会通过解释器,编译生成对应的CSS文件。

LESS可以直接在客户端使用,也可以在服务端使用。实际开发中推荐第三种方式,将LESS文件编译生成静态CSS文件,并在HTML文档中应用。

客户端:

 http://lesscss.org下载less.js文件,然后再需要引入LESS源文件的HTML中加入如下代码:

<link rel="stylesheet/less"type="text/css" href="styles.less">

注意:rel属性要设置为stylesheet/less,LESS源文件一定要在lesss.js引入前引入。

服务器端:

LESS在服务器端的使用主要是借助于LESS的编译器,将LESS源文件编译生成的最终CSS文件,目前常用的方式是利用node的包管理器(npm)安装LESS。

项目开发初期可以用importing关键字引入。

LESS完全兼容CSS语法。

 

语法

允许开发者自定义变量,变量可以在全局样式中使用。

@border-color : #b5bcc7;

 

 .mythemestableBorder{

   border : 1pxsolid @border-color;

 }

变量生命周期:先局部后全局。

 

Mixins(混入)

LESS 中,混入是指在一个 CLASS 中引入另外一个已经定义的 CLASS,就像在当前 CLASS 中增加一个属性一样。

.roundedCorners(@radius:5px) {

 -moz-border-radius:@radius;

 -webkit-border-radius: @radius;

 border-radius:@radius;

 }

 // 在另外的样式选择器中使用

 #header {

 .roundedCorners;

 }

 #footer {

 .roundedCorners(10px);

 }

像JavaScript中的arguments一样,Mixins也有@arguments,表示所有的变量。

.boxShadow(@x:0,@y:0,@blur:1px,@color:#000){

 -moz-box-shadow:@arguments;

 -webkit-box-shadow: @arguments;

 box-shadow:@arguments;

 }

 #header {

 .boxShadow(2px,2px,3px,#f36);

 }

 

命名空间

#mynamespace { 
 .home {...} 
 .user {...} 
 }

#mynamespace > .user

 

嵌套的规则

书写标准 CSS 的时候,遇到多层的元素嵌套这种情况时,我们要么采用从外到内的选择器嵌套定义,要么采用给特定元素加 CLASS ID 的方式。在 LESS 中我们可以这样写:LESS 的嵌套规则的写法是 HTML 中的 DOM 结构相对应的

html文件:

<div id="home">

 <divid="top">top</div>

 <divid="center">

 <divid="left">left</div>

 <divid="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%; 
        } 
    } 
 }

 

运算及函数

@init: #111111;

 @transition:@init*2;

 .switchColor {

 color: @transition;

 }

 

lighten(@color, 10%); // return a color which is 10%*lighter* than @color

 darken(@color,10%); // return a color which is 10% *darker* than @color

 saturate(@color,10%); // return a color 10% *more* saturated than @color

 desaturate(@color,10%);// return a color 10% *less* saturated than @color

 fadein(@color,10%); // return a color 10% *less* transparent than @color

 fadeout(@color,10%); // return a color 10% *more* transparent than @color

 spin(@color, 10);// return a color with a 10 degree larger in hue than @color

 spin(@color, -10);// return a color with a 10 degree smaller hue than @color

 

init: #f04615;

 #body {

  background-color:fadein(@init, 10%);

 }

 

Comments(注释)

注释方法与JavaScript一样,强调:单行注释//不能显示在编译后的CSS中。

 

同类框架还有SASS,相比之下LESS更接近CSS语法。https://gist.github.com/674726

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值