Less基础

执行时用js编译less

<style type="text/less">
  #wrap{
        width: 500px;
        height: 500px;
        border: 1px solid;
        .inner{
                width: 100px;
                height: 100px;
                background: pink;
        }
}
<script src="//cdnjs.cloudflare.com/ajax/libs/less.js/2.5.3/less.min.js"></script>

Less编译工具 koala 官网:www.koala-app.com

less中的注释

    以//开头的注释,不会被编译到css文件中
    以/**/包裹的注释会被编译到css文件中 

变量

// @定义的 选择器,属性名,url  使用时必须 @{xx}使用  .
// 属性值不能@{}使用 会报错
@color:pink;
@selector:wrap;
@margin:margin;
@background_url:'http://xx.jpg';
.@{selector}{
    @{margin}:20px;
    color:@color;
    background-image: url('@{background_url}');
}

变量的延迟加载

{}是less的作用域  赋值时取的是作用域内变量最终的结果 ,当前作用域不存在变量取上层作用域最终结果
@size:10;
.wrap{
    border: @size px solid; //10px
    .inner{
        @size:1px;
        border: @size solid; //20px 
        @size:20px;
    }
}
//编译结果
.wrap {
  border: 10 px solid;
}
.wrap .inner {
  border: 20px solid;
}

嵌套规则

//以.inner为基准的伪类 用&符开头&就相当于.inner本身  不写会视为子选择器
.inner{
        width: 100px;
        height: 100px;
        background:@color;
        &:hover{
            background: black;
        }
    }

混合 (提取公共代码 跟函数很像的东西 可以传参,以.开头)

<!--普通混合  编译时会被当成类选择器 加入css文件 -->
@color:pink;
.common{
    width: 100px;
    height: 100px;
}
.wrap{
    .inner1{
        .common;
    }
    .inner2{
        .common;
    }
}
<!--不带参数的混合 编译时不会被当成类选择器加入css文件-->
.common(){....} 
<!--带参数的混合 编译时不会被当成类选择器加入css文件-->
//除非是有默认值的形参 否则一旦定义了形参 就算混合内部没用上这个形参 调用时不传实参也会报错
//形参的默认值 可以是其他变量
@color:#fff;
.common(@margin,@c:@color){
    width: 100px;
    height: 100px;
    background:@c;
    margin: @margin;
    &:hover{
        background: black;
    }
}
.wrap{
    .inner1{
        .common(10px,#666);
    }
    .inner2{
        .common(20px);
        border: 1px solid;
    }
}
<!--命名参数-->
// 调用时 无视参数的顺序 指定参数的值
@color:#fff;
.common(@margin,@pd:10px,@c:@color){
    width: 100px;
    height: 100px;
    background:@c;
    margin: @margin;
    padding:@pd;
    &:hover{
        background: black;
    }
}
.wrap{
    .inner1{
        .common(@margin:20px);
    }
    .inner2{
        .common(@pd:20px,@margin:30px);
        border: 1px solid;
    }
}

<!--匹配模式--->
//可以将匹配混合集的公共代码提取,名字一致  写了@_后(形参个数也必须一致) 一旦混合被匹配上会自动调用 
.sjx(@_,@ww,@cc){
    width: 0px;
    height: 0px;
    overflow: hidden; 
    border-width: @ww;
}
.sjx(T,@width,@color){
    //border-width: @width;
    border-style:solid dashed dashed dashed;
    border-color:@color transparent transparent transparent ;
}
.sjx(R,@width,@color){
    //border-width: @width;
    border-style:dashed solid dashed dashed;
    border-color:transparent @color transparent transparent ;
}
.wrap{
    .inner{
        .sjx(T,20px,yellow);//根据标识 调用匹配上的混合
    }
}

<!-- arguments 混合内部使用实参时不用一个个写 一次性写完 鸡肋的一个功能-->
.border(@w,@style,@c){
    border: @arguments;
}

.wrap .sjx{
   .border(1px,solid,black)
}

继承

//继承的灵活性不好 但是性能好 , 与混合相比(混合编译后css相当于复制粘贴) 继承则不会出现重复的代码

.juzhong{
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: 0;
    margin: auto;
}

.juzhong:hover{
    background: red!important;
}
.juzhong .test{
    color: red;
}
.inner{
        &:extend(.juzhong all); //all表示 以.juzhong开头的全部继承 (这里:hover .test都会继承)
        &:nth-child(1){
           width: 100px;
           height: 100px;
           background: pink;
        }
        &:nth-child(2){
           width: 50px;
           height: 50px;
           background: yellow;
        }
}
//最终生成的css文件,就是 分组选择器
.juzhong,
.wrap .inner {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  margin: auto;
}
.juzhong:hover,
.wrap .inner:hover {
  background: red!important;
}
.juzhong .test,
.wrap .inner .test {
  color: red!important;
}
.wrap {
  position: relative;
  width: 300px;
  height: 300px;
  border: 1px solid;
  margin: 0 auto;
}
.wrap .inner:nth-child(1) {
  width: 100px;
  height: 100px;
  background: pink;
}
.wrap .inner:nth-child(2) {
  width: 50px;
  height: 50px;
  background: yellow;
}

避免编译

margin: ~"calc(10+10)";  ~" xxx"里的内容 不会被less编译 

引入其他less文件

@import './xx.less'; //可以将一些混合写入其他文件 使用时引入这个文件就行
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,036评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,046评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,411评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,622评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,661评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,521评论 1 304
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,288评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,200评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,644评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,837评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,953评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,673评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,281评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,889评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,011评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,119评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,901评论 2 355

推荐阅读更多精彩内容

  • 2.21学习经验分享# Bruce_Zhu于2017.2.21 一、LESS基础 LESS 是一门 CSS 预处理...
    旅行的意义zxy阅读 327评论 0 0
  • 变量 适用于定义主题,我们可以将背景颜色、字体颜色、边框属性等常规样式进行统一定义,这样不同的主题只需要定义不同的...
    dadadahui阅读 736评论 0 0
  • Less 是一门 CSS 预处理语言,使用了类似CSS的语法,为CSS赋予了动态语言的特征。它扩展了 CSS 语言...
    嘿喵heyMeow阅读 162评论 0 0
  • 工具:koala 下载完成后将含有less文件的文件夹拖入,指出导出的css文件的路径既可以进行编译。下面是les...
    poppyl阅读 264评论 0 0
  • 什么是Less? Less是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法,为CSS的赋予了...
    执凉阅读 460评论 1 0