CSS扩展技术-less

在原来的CSS基础上扩展一些编程语言

CSS引用扩展技术时需要编译器编译<编译工具Koala

1.less《比较早期的CSS扩展技术》

a.less语法:后缀名<.less>

//变量的定义
@color:blue;
@body-color:blue;
@div-color:blue;
@w:100px;
@h:100px;
body{
    height:500px;
    border:1px solid @body-color;
}
div{
    width:@w;
    height:@h;
    border:1px solid @div-color;
}
p{
    color:@color;
}
//作用域《和顺序无关,选择最近的》
@var:0;
.class1{
    @var:1;
    .class{
        @var:2;
        three:@var; 
        @var:3;
    }
    one:@var;
}
//输出结果
three:3;one:1;

b.混合

//没有参数
.whb{
    width:@w;
    height:@h;
    border:1px solid @div-color;
}

p{
    .whb;//直接调用
}

//传参数时
.whb(@w,@h,@c){
    width:@w;
    height:@h;
    border:1px solid @c;
}
p{
    .whb(100px,100px,blue);//直接调用
}

//传参数时可以设置默认值@c默认为red,第一个写了默认值,后面最好都写默认值
.whb(@w,@h,@c:red){
    width:@w;
    height:@h;
    border:1px solid @c;
}
p{
    .whb(100px,100px);//直接调用,颜色默认red,传参数时要匹配
}

//传参数时参数之间可以用,和;分开,两者间区别如下:
.whb(@w;@h;@c:red){
    width:@w;
    height:@h;
    border:@c;
}
p{
    .whb(100px;100px;1px solid red);
}

//举例:<简化代码编写>
.radius(@radius){
    -webkit-border-radius:@radius;
    -moz-border-radius:@radius;
    -o-border-radius:@radius;
    border-radius:@radius;
}
p{
    .whb(100px;100px;1px solid red);
    .radius(15px);
}

@arguments变量 @rest变量 !important关键字 less判断功能<比较弱>:eg:darken颜色变深 lighten颜色变浅

c.嵌套<&当前选择器>

.class1{
    .whb{100px,100px,red};
    .class2{
        .bfc
    }
    &:hover{
        text-decoration:none;
    }
    p &{
        background:red;//表示p.class1{background:red;}
    }
}

d.导入

@important"文件名"

e.替换
//1
@url-name:"1.jpg";
@bg:"./image/@{url-name}";

//2
@selector:h1;
@{selector}{
    color:red;
}
posted @ 2015-09-20 00:10  xia~  阅读(547)  评论(0编辑  收藏  举报