zoukankan      html  css  js  c++  java
  • 在Less中使用条件判断

      好几个月都没写点什么东西了,被外派到Gov开发项目,老旧的系统让开发痛苦不堪,接口文档甚至是2011年的,感觉这几个月的时间都被浪费在做兼容处理上了,并且没学到什么东西,心里挺不是滋味。回到公司后才知道之前负责的Vue项目黄了,本来还想把微信的H5支付做一做,但服务器上的开发环境已经被撤掉了,就只好作罢。最近组里的人又离职了,只剩下我一个人,于是开始招人。。。各种琐事之后,新的项目开始,而我又回归老本行——切页面了。

      对于切页面,我是比较烦的,因为始终找不到提高效率的方法,有时候似乎有些门路了,再开始另一个项目时又没有坚持下来。最近打算用Less把页面常用的样式提取出来,做成一个公共文件,方便复用。在做CSS箭头的时候遇到了一些小问题。我想通过如下形式来生成上下左右四个方向的箭头:

    .arrow(up,color)
    .arrow(down)
    .arrow(left)
    .arrow(right)

    如果按照常规的逻辑,四种情况只要写四个if条件语句就行了,但Less中没有提供这种语法,查阅了一下文档,Less支持when关键字,这下思路就有了,先把公共样式命名为.arrowSet

    .arrowSet(@pixel){
        width:0;
        height:0;
        overflow: hidden;
        border-width:@pixel;
    }

     然后针对四个方向的箭头写四个样式:

    .arrowUp(@color){
        border-style:dashed dashed solid dashed;
        border-color:transparent transparent @color transparent; 
    }
    .arrowDown(@color){
        border-style:solid dashed dashed dashed;
        border-color:@color transparent transparent transparent; 
    }
    .arrowLeft(@color){
        border-style:dashed solid dashed dashed;
        border-color:transparent @color transparent transparent;
    }
    .arrowRight(@color){
        border-style:dashed dashed dashed solid;
        border-color:transparent transparent transparent @color;
    }

    接着就是使用条件判断来使用这四个样式:

    .arrow(@direction,@color,@pixel:5px) when (@direction = up) {
        .arrowUp(@color);
        .arrowSet(@pixel);
    }
    .arrow(@direction,@color,@pixel:5px) when (@direction = down) {
        .arrowDown(@color);
        .arrowSet(@pixel);
    }
    .arrow(@direction,@color,@pixel:5px) when (@direction = left) {
        .arrowLeft(@color);
        .arrowSet(@pixel);
    }
    .arrow(@direction,@color,@pixel:5px) when (@direction = right) {
        .arrowRight(@color);
        .arrowSet(@pixel);
    }

    最后在调用的时候可以通过

    div.d1{
        .arrow(right,red);
    }
    div.d2{
        .arrow(down,#000,10px);
    }

    这种方式。至于最终生成什么代码,就不用操心了,交给Less编译器去处理,这样或多或少提升了一点效率。

    P.S. 有一些零散的知识点总觉得很简单,不用总结,到后来又不记得了还得到处找,所以我还是得时刻提醒自己,常常把一些想法和知识记录下来,不管质量高低,都是前进的证明。

  • 相关阅读:
    Windows 2003下面Apache+SVN配置
    Oracle中年月日级联填充查询语句
    Tomcat创建一个windows服务
    Oracle10G常用维护语句汇总
    Oracle10g安装了11g的ODAC后,PL/SQL连接提示TNS:无法解析指定的连接标识符
    小谈EasyUI中的tree用法
    正则表达式用法
    执行存储过程返回游标集合转换成List
    面试过程中关于Oracle的查询
    一个可以匹配整数、浮点数的正则表达式
  • 原文地址:https://www.cnblogs.com/undefined000/p/use-if-statement-in-less.html
Copyright © 2011-2022 走看看