zoukankan      html  css  js  c++  java
  • Less-mixin函数基础二

    //mixin函数
    
    基础使用方法
    
    --包含选择器,example:
    .test(){
        &:hover{
            border:1px solid red;
        }
    }
    
    button{
        .test;
    }
    
    //output css
    button:hover {
      border: 1px solid red;
    }
    
    
    --命名空间,example:
    .test(){
        .Height{
            height:80px;
        }
    }
    
    //grammar 1
    .study{
        .test>.Height;
    }
    
    //grammar 2
    .study{
        .test > .Height;
    }
    
    //grammer 3
    .study{
        .test .Height;
    }
    
    //grammar 4
    .study{
        .test.Height;
    }
    
    //output css
    .study {
      height: 80px;
    }
    
    小结:你可以在mixin函数中定义多个函数,并可以用以上4种任意方法去调用,他们之间的空格和>都是可选的
    可有的类似于JavaScript中的方法对象,区别在于他的调用没有那么严谨,example:
    #outer > .inner;
    #outer > .inner();
    #outer .inner;
    #outer .inner();
    #outer.inner;
    #outer.inner();
    全部都是可以成功调用#outer mixin函数中的.inner函数--(此处来自文档)
    
    
    --保护命名空间,example:
    
    @mianColor:red;
    
    //grammar 1
    #test when(@mianColor=red){
        .childColor{
            border:1px solid blue;
        }
    }
    
    //output css
    #test .childColor {
      border: 1px solid blue;
    }
    
    
    //grammar 2
    #test when(@mianColor=red){
        .childColor(){
            border:1px solid blue;
        }
        .study{
            .childColor;
        }
    }
    
    //output css
    #test .study {
      border: 1px solid blue;
    }
    
    当这个时候.childColor函数无论是立即执行还是指定条件执行在#test外部都是无法调用的,这样起到命名空间保护
    这里的 when(@mianColor=red)起到了当在指定条件为true是才会执行
    注意:@mianColor的声明必须在外部才会起到作用,example:
    when true
    //grammar 1
    @mianColor:red;
    #test when(@mianColor=red){
        .childColor{
            border:1px solid blue;
        }
    }
    
    //grammar 2
    @mianColor:blue;
    #test when(@mianColor=red){
        .childColor{
            border:1px solid blue;
        }
    }
    @mianColor:red;
    
    
    when false
    //grammar 1
    @mianColor:blue;
    #test when(@mianColor=red){
        .childColor{
            border:1px solid blue;
        }
    }
    
    //grammar 2
    @mianColor:red;
    #test when(@mianColor=red){
        .childColor{
            border:1px solid blue;
        }
    }
    @mianColor:blue;
    
    
    //error grammar 1
    @mianColor:red;
    #test when(@mianColor=red){
        @mianColor:blue;
        .childColor{
            border:1px solid blue;
        }
    }
    这样的最终结果还是为真
    
    //error grammar 2
    @mianColor:blue;
    #test when(@mianColor=red){
        @mianColor:red;
        .childColor{
            border:1px solid blue;
        }
    }
    这样的最终结果还是为假
    
    小结:内部不会改变外部声明变量,同时外部也不能调取内部函数,这其实和JavaScript函数的闭包是一个道理

    作者:leona

    原文链接:http://www.cnblogs.com/leona-d/p/6296580.html

    版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接

  • 相关阅读:
    12864
    经常使用的正則表達式归纳—JavaScript正則表達式
    官方原版Windows XP SP3(VOL)中文简体版ISO下载
    java final keyword
    ssh 实体关系分析确立(ER图-实体关系图)
    android uiautomator自己主动化測试
    NYOJ 891 找点
    第十一届GPCT杯大学生程序设计大赛完美闭幕
    前端学习——JQuery Ajax使用经验
    VC中获取窗体句柄的各种方法
  • 原文地址:https://www.cnblogs.com/leona-d/p/6296580.html
Copyright © 2011-2022 走看看