码迷,mamicode.com
首页 > 其他好文 > 详细

less简记

时间:2016-08-21 18:29:47      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

   Less is more, than CSS.  Less有点类似与jq, 是css的一个库。

   less是一种动态样式语言,属于CSS预处理语言的一种,使用类似于CSS的语法,为CSS赋予了动态语言特性,如变量、继承、运算、函数等,方便CSS的编写和维护。

一、变量

通过@定义变量(如php的$ ?),可以在设置属性值时,直接调用变量。

@width:300px;

二、混合

混合可以将一个定义好的class A轻松的引入到另一个class B中,从而简单实现class B继承class A中的所有属性。我们还可以带参数地调用,就像使用函数一样。(

也可以不加参数,直接调用对应的CSS属性)

例子:

//通过定义这个类来解决兼容问题

   .rounded-corners (@radius: 5px) {

    -webkit-border-radius: @radius;

    -moz-border-radius: @radius;

    -ms-border-radius: @radius;

    -o-border-radius: @radius;

    border-radius: @radius;

}

 

#header {

    .rounded-corners;  //无参数调用,为默认值5px

}

#footer {

    .rounded-corners(10px);  //有参数调用,@radius为10px

}

 

三、嵌套

我们可以在一个选择器中嵌套另一个选择器来实现继承,这样很大程度减少了代码量,并且代码看起来更加的清晰。

例子:

#header {

  //h1, p 同级   a被p嵌套

    h1 {

        font-size: 26px;

        font-weight: bold;

    }

    p {

        font-size: 12px;

        a {

            text-decoration: none;

            &:hover {       //&符号 代指上一层标签  此处为a

                border-width: 1px

            }

        }

    }

}

四、常识点

1、!important关键字:调用时在混合后面加上!important关键字表示将混合带来的所有属性标记为!important 。

2、可以使用css中的注释 /*   */,也可以使用//, 使用//在编译时会被自动过滤。

3、可以在main文件中通过下面的形势引入 .less 文件, .less 后缀可带可不带:

@import "lib.less";

 

五、匹配模式

作用有点类似于

.triangle(top, @a:xx , @b:xx){

     //属性设置

}

.triangle(bottom, @a:xx , @b:xx){

     //属性设置

}

.triangle(@_, @a:xx , @b:xx){

     //属性设置(每个匹配项共有)

}

 

//使用

.abc{

.triangle(top);   //选择第一个参数为top的匹配项 (含有@_的内容)

.triangle(bottom); //选择第一个参数为bottom的匹配项(含有@_的内容)

}

 

六、函数和运算

运算提供了加,减,乘,除操作;我们可以做属性值和颜色的运算,这样就可以实现属性值之间的复杂关系。LESS中的函数一一映射了JavaScript代码,如果你愿意的话可以操作属性值。

// LESS

@the-border: 1px;                                              /* 生成的 CSS */

@base-color: #111;                                            #header {

@red:        #842210;                                color: #333;

#header {                                         border-left: 1px;

  color: @base-color * 3;                            border-right: 2px;

  border-left: @the-border;                         }

  border-right: @the-border * 2;                   #footer {

}                                                    color: #114411;

#footer {                                            border-color: #7d2717;

  color: @base-color + #003300;                     }

  border-color: desaturate(@red, 10%);

}

七、避免编译

有时候会输出一些不符合规定的CSS语句,或者LESS无法编译的语句。这时候在语句前面加上~符号,并将语句用引号包裹。

例子:

.class{

filter: ~"ms:alwaysHasItsOwnSyntax.For.Stuff()";

}

编译后:

.class{

filter: ms:alwaysHasItsOwnSyntax.For.Stuff();

}

八、JavaScript 表达式也可以在.less 文件中使用. 可以通过反引号的方式使用:

例子:

@var: `"hello".toUpperCase() + ‘!‘`;

输出:@var: "HELLO!";

    目前学习了这些,以后使用过程中出现问题再补充。

 

less简记

标签:

原文地址:http://www.cnblogs.com/bxddy/p/5793188.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!