less之路

1.less的使用方法 :自行搜索

2.注释:

      //单行注释(通常用于生产环境)
      /**/多行注释
      区别:多行注释会被解析到css文件中,单行不会

3.变量

变量允许我们定义一系列通用的样式,然后在需要的时候去调用所以在做全局样式调整的时候我们可能只需
要修改几行代码就好了
    @符号开头:@width:12px;
     例子: @width:2px;
           @style:solid;
           @red:red;
           @blue:blue;
           .box1{
                width:200px;
                height:100px;
                border:@width @style @red;
          }
           .box2{
                width:200px;
                height:100px;
                border:@width @style @blue;
          }
           .box3{
                width:200px;
                height:100px;
                border:@width @style @red;
                background:@red;
          }
更改样式只需要引用变量名即可,方便

4.作用域(变量发生作用的区域)

  .box{
        @width:20px;
        .main{
            wdith:@width;
        }
  }
  这样是没问题的,{}就是域,和js一样
.box2{
    width:@width;//在这里引用@width变量
}
这样是错误的,会报错

4.嵌套

我们可以在一个选择器中嵌套另一个选择器来实现继承,这样很大程度减少了代码量,并且代码开起来更加
清晰。
例如:写一个导航栏
html结构:
  <nav>
      <div class='content'>
            <div.left>
                  <a href="#"></a>
                  <a href="#"></a>
                  <a href="#"></a>
            </div>
            <div.right>
                  <a href="#"></a>
                  <a href="#"></a>
                  <a href="#"></a>
            </div>
      </div>
  </nav>
  nav{
      height:50px;
      background:blue;
      .content{
          margin:0 auto;
          width:80%;
          a{
                color:#fff;
                &:hover{  //&符号代表a标签本身
                    color:red;
                }
          }
          .left{
                float:left;
                 &.padding-left{  //给.left添加padding-left,需要&符号,看编译好的css
                        padding-left:20px;
                  }
          }
          .right{
                floar:right;
          }
     }
}
结构很清晰,父子级等关系很明显

5.混合

@border:'border solid #ccc';
box{
    width:@border;
}
以上是错误的方式
混合:将一个定义好的classA引入到另一个classB中,从而实现classB继承classA中的所有属性
1.最简单的混合方式:
.classA{
      border:1px solid #ccc;
}
.clearFix{
    *zoom:1;
    &:after{
        content:' ';
        display:block;
        clear:both;
    }
}
//公用样式放到前面
.classB{
    .classA;
    .cleafFix;
}
2.带参数的混合:
.border(@color){
     border:1px solid @color;
}
.box1{
      .border(#ccc);
}
.box2{
      .border(#f00);
}
3.多个参数的混合
.border(@width,@style,@color){
     border:@width @style @color;
}
.box1{
      .border(1px,solid,#ccc);
}
.box2{
      .border(1px,solid,#f00);
}
.box3{
      .border(2px,solid,#f00);
}
.box3{
      .border(2px,dotted,#f00);
}
实参形参一一对应,一个都不能少
4.带默认值的参数混合
.border(@width:1px,@style:solid){
     border:@width @style #ccc;
}
.box1{
      .border(1px dotted);//如果修改第二个参数的话都必须传实参,一一对应
}
.box2{
      .border();
}
.box3{
      .border(2px);
}
.box3{
      .border();
}
5.arguments变量:代表了所有的参数(在不在乎参数顺序的时候可以使用)
.border(@style:solid,@width:1px){
     border:@arguments #ccc;
}
.box1{
      .border(1px dotted);//如果修改第二个参数的话都必须传实参,一一对应
}
.box2{
      .border();
}
.box3{
      .border(2px);
}
.box3{
      .border();
}
5.模式匹配
.border(top,@width:1px){
      border-top:@width solid #ccc;
}
.border(right,@width:1px){
     border-right:@width solid #ccc;
}
.border(bottom,@width:1px){
     border-bottom:@width solid #ccc;
}
.border(left,@width:1px){
     border-left:@width solid #ccc;
}
.border(@_,@width:1px){   
      width:100px;
}
.box1{
    .border(top,5px);
}
.box2{
    .border(right);
}
.box3{
    .border(bottom,round(2.3)*1px);//Math函数用法
}
.box4{
    .border(left);
}
//@_  代表公用样式,即使有@_,使用的时候还是要传首参
//Math()函数 :
  round(5.5);四舍五入
  ceil(2.1);return 3  ,向上取整
  floor(2.9);return 2,  向下取整
6.命名空间
.blue{
      .button{
            background:blue;
      }
}
.red{
      .button{
            background:red;
      }
}
.box{
    .red > .button;
}
7.import
引入另一个less文件
@import 'global';//后缀名.less可加可不加
例如写一个样式重置,在里面可以定义一个变量@rem:32rem;这个变量可以直接使用
8.避免编译
.box{
      width:@rem;
      font:(12/@rem)~'/'(20/rem) '宋体';
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,087评论 18 139
  • 1、LESS的官网:http://lesscss.org 2、Sass官网地址:http://sass-lang....
    Howie223阅读 3,560评论 0 5
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,544评论 25 707
  • 昨日,收到皇甫战友从杭州寄来的明前龙井,夜间我就梦到了他。梦回吹角连营,依然年轻帅气,梦中他和另一个战友李良兵都调...
    入红尘难阅读 587评论 1 5
  • 昨晚看天气预报,说这几天有暴雨。老公说:“别听它的,哪回准了。”于是我也没在意。今天一大早,幼儿园连发了三个通知:...
    微霞满天阅读 211评论 0 1