• less学习笔记二


    作为CSS的一个扩展语言,Less不仅向后兼容CSS,它新增的特殊功能也可以使用现有css的语法。这使学习Less是一件轻而易举的事。

    1、Variables:变量定义,变量实际上是只能定义一次的常量

    @nice-blue:#5B83AD;
    @light-blue:@nice-blue + #111;
    
    .header{
        color:@light-blue;
    }
    
    /**outputs**/
    
    .header{
        color:#6c94be;
    }

    使用@定义了变量nice-blue,类.header中样式引用变量@light-blue.

    2、Mixins:混合,一个规则集合在另一个规则集合中的调用。

    .bordered {
      border-top: dotted 1px black;
      border-bottom: solid 2px black;
    }
    .mgt10{margin-top:10px;}
    
    .menu a {
      color: #111;
      display:inline-block;
      padding:10px;
      .bordered;
    }

    /**outputs**/

    .menu a { color: #111;
          display:inline-block;
          padding:10px;       
          border-top: dotted 1px black;
          border-bottom: solid 2px black;
      
    }

    选择器类.bordered在另一个选择器.menu a中调用。.bordered中的样式属性会在.menu a中解析成它原来的样子。

    混合类可以是类选择器,id选择器;被引用时可以使用圆括号(可选的)

    .paragraph{color:@nice-blue;}
    .section-p{
        .paragraph();
    }

    如果你想创建一个不输出到页面样式文件的混合类,你可以在定义混合类的时候在它后面使用圆括号

    .paragraph(){color:@nice-blue;}
    .paragraphl{background:@light-blue;}
    .section-p{
        .paragraph();
        .paragraphl();
    }
    
    /**outputs**/
    .paragraphl {
      background: #6c94be;
    }
    .section-p {
      color: #5B83AD;
      background: #6c94be;
    }

    混合类中不止可以包含样式属性,也可以包含选择器

    .hover-mixin(){
        &:hover{
            color:red;
        }
    }
    .menu a{
        .hover-mixin();
    }
    .section-p{
        .hover-mixin();
    } /**outputs**/ .menu a:hover { color: red; }
    .section-p{
      color: red;
    }

    符号&代表调用混合类hover-mixin的选择器,个人认为类似js中的this,指向调用该方法的对象。

    Namespaces:命名空间,混合类嵌套定义

    如果你想在一个更加复杂的选择器中混合多个样式属性,你可以堆积多层id或class

    .article{
        .inner{color:red;}
    }
    .header-2{
        /*.article > .inner;*/
        /*.article > .inner();*/
        /*.article .inner;*/
        /*.article .inner();*/
        /*.article.inner;*/
            .article.inner();
    }    
    
    /**outputs**/
    .article .inner {
      color: red;
    }
    .header-2 {
        /*.article > .inner;*/
        /*.article > .inner();*/
        /*.article .inner;*/
        /*.article .inner();*/
        /*.article.inner;*/
        color: red;
    }

    当需要在其他选择器中调用选择器中定义的混合类时,可以通过符号>和空格来实现。个人认为类似于js中调用对象中的属性方法时的操作 obj.func

    此处,符号>和空格都是可选的。

    Guarded Namespaces,条件命名空间

    如果命名空间含有一个条件限制,它内部定义的混合类只有在条件状态返回true时才能被调用。定义命名空间上的条件限制与其内部混合类上的条件限制是等价的。

    .....

    !important关键字,使用在混合类后,将混合类中继承过来的所有属性标记为!important.

    .unimportant{
            .paragraph();
        }
        .important{
            .paragraph() !important;
        }
    
    /**outputs**/
    .unimportant {
        color: #5B83AD;
    }
    .important {
        color: #5B83AD !important;
    }
  • 相关阅读:
    问题.NET--win7 IIS唯一密钥属性“VALUE”设置为“DEFAULT.ASPX”时,无法添加类型为“add”的重复集合
    java传统web项目添加maven管理jar包,log4j无法正常输出日志
    TortoiseSVN设置Beyond Compare为版本比较、差异合并工具
    Win10以管理员身份启动cmd.exe
    SprinMVC中文件上传只在内存保留一份拷贝
    maven项目运行报错invalid LOC header (bad signature)
    c#编写windows服务在开机是OnStart启动超时
    centos安装mysql
    CENTOS7配置静态IP
    @__CheckForDebuggerJustMyCode@4
  • 原文地址:https://www.cnblogs.com/Youngly/p/6801266.html
Copyright © 2020-2023  润新知