zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    AtCoder Grand Contest 019
    upd 2020.10.31
    ubuntu 自动配置脚本
    linux下gcc、g++不同版本的安装和切换
    fixes for 100% disk usage on Windows 10
    简单聊聊VisualStudio的断点调试
    运算符重载
    设计模式之桥接模式
    使用C#进行数据库增删改查ADO.NET(三)
    使用C#进行数据库增删改查ADO.NET(二)
  • 原文地址:https://www.cnblogs.com/Youngly/p/6801266.html
Copyright © 2011-2022 走看看