less入门

1. 什么是less?

  • Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性,使 CSS 更易维护和扩展。Less 可以运行在 Node 或浏览器端。
  • less的同类型工具还有Sass,stylus等
  • less 它必须要编译成css文件,才能被浏览器解析。

2.怎么使用less?

  • 如果不想安装任何软件和插件,练习less语法的使用,可以直接到js.jirengu.com中直接写代码。
  • 如下图,在css中选择less模板
U95%(NHYI`WT~N}$I7QU5CW.png

less 语法

  • 注释 ,/**/注释的内容后它会编译到对应的css文件,// 注释的内容会保留在less文件中不会注释到对应的css文件中
    /这段文字注释会编译到css文件/
    //这段文件注释不会编译到css文件中
  • 变量声明 @变量名:值,有利于在多个重复代码一次修改,只需要修改变量值即可
    @color:red;
    body{background:@color}
    div{background:@color}

![)P%%TIDSPU%H{9HG]U_RODP.png](http://upload-images.jianshu.io/upload_images/3361706-4f83994b44c59bb1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

  • 混合
  1. 无参数,可以把写好.border直接写入div的样式中,结果如下图
    .border{
    border:1px solid #fff;
    }
    div{
    width:100px;
    height:100px;
    .border
    }

![MC$A1C0DBGK]8`4(G0KT5ZC.png](http://upload-images.jianshu.io/upload_images/3361706-4717ddfe27d87851.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

2.有参数, 形式如.xxx(@变量)

   .border-01(@width){
          border: solid red @width;
    }
      .test{
          .one;
          .border-01(20px)
  }
1.png

3.参数可以传递默认值 .xxx(@变量:value)

    .border-02(@border_width:10px){
    border: solid red @border_width
   }
    div{
    .one;
    .border-02()//此时div的border默认宽度为10px;
    //也可以对默认值进行修改如  .border-02(20px);
    }
  • 匹配模式,相当于javascript 中的if;
    //css中我们一般这样画一个三角形
    .sanjiao{
    width: 0;height: 0;
    overflow: hidden;
    border-width: 10px;
    border-color: red transparent transparent transparent;
    border-style: solid dashed dashed dashed
    }
    less中我们可以使用匹配模式,如.triangle(top,@w:5px,@c:#ccc), 让三角形有更好的复用性
    .triangle(top,@w:5px,@c:#ccc){
    border-width: @w;
    border-color: transparent transparent transparent @c;
    border-style: solid dashed dashed dashed
    }
    //@_ 表示继承上面.triangle的样式
    .triangle(@_,@w:5px,@c:#ccc){
    width: 0;height: 0;
    overflow: hidden;
    }
    .sanjiao{
    .triangle(top)
    }
  • 运算,可以的使用+-*/等运算符对宽度、高度、颜色进行运算(一般不建议使用)等
    @test_01:300px;
    .box_02{
    width: @test_01+205;//宽度为300+205=400px
    color:#ccc-10;//减法颜色会变淡,#c2c2c2
    }
  • 嵌套,功能强大,可以让我们像写html的结构一样写css;
    div{
    ul{
    li{ }
    }
    }

![F%HTLYTS1~H]POCDP`9KXJK.png](http://upload-images.jianshu.io/upload_images/3361706-cc044452c4f98dc8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

  • arguments,类似于JS中arguments类数组
    .border_arg(@w:30px,@c:red,@xx:solid){
    boder:@arguments;//代表()中的三个参数
    }
    .test_arguments{
    .border_arg();
    }
  • 避免编译 ~'xxxx ',主要是有些属性less编译成css会让浏览器无法解析,这里以CSS3中的calc()计算属性
    //编译前
    .test_04{
    width: 300px;
    height:calc(300px-30px);//让浏览器计算为300-30=270px
    }
    //编译后
    .test_04 {
    width: 300px;
    height: calc(270px);//失去了计算的意义,浏览器不起作用
    }
    // 避免编译使用
    .test_03{
    width: 300px;
    height:~'calc(300px-30px)';
    }
    //编译后仍就保持原样
    .test_03 {
    width: 300px;
    height: calc(300px-30px);
    }
  • !important 使用增加优先级
    //编译前
    .border-radius(@radius:5px){
    -webkit-border-radius:@radius;
    -moz-border-radius:@radius;
    border-radius: @radius;
    }
    .test_important{
    .border-radius()!important;
    }
    //编译后
    .test_important {
    -webkit-border-radius: 5px !important;
    -moz-border-radius: 5px !important;
    border-radius: 5px !important;
    }

3.安装less的编译软件

  • 最简单的是国产软件koala,使用很简单,很强大,可以编译多种CSS的预处理语言,如less,sass,compass等,适合新手使用,安装很简单,可以报错提示,可以实施编译,相当好用!
    网址:koala
  • nodejs安装包,可以结合gulp使用,通过npm install gulp-less的包,再去配置gulpfile.js中的任务,实现工程化自动编译less语言,比较复杂,不适合新手。
  • 第三种就是让浏览器解析,不用安装软件,直接在html的文件<head></head>中引入less.js,而且less.js必须放在style.less的后面
    <link rel="stylesheet/less" type="text/css" href="styles.less" />
    <script src="less.js" type="text/javascript"></script>
  • 建议新手练习less,sass等语法时可以直接使用koala软件,或是到js.jirengu.com直接练习,node的安装less包有了一定命令行基础和前端gulp等工具的经验使用,但是node执行不能很简单实时编译,每次修改后都要重新执行任务(备注:当然有些大神肯定会配置,反正我是不会)
  • 参考资料:less文档
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,653评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,321评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,833评论 0 324
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,472评论 1 266
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,306评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,274评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,658评论 3 385
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,335评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,638评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,697评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,454评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,311评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,699评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,986评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,254评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,647评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,847评论 2 335

推荐阅读更多精彩内容