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

  • 相关阅读:
    win2008R2超过激活期,但是一个小时之后就会自动强制关机的问题
    SQL数据库中出现大量用户登录错误怎么解决
    VMware上安装centos 6.3 不能联网问题
    最简单的正则表达式
    双向认证SSL原理
    【虚拟机】在VMware中安装Server2008之后配置网络连接的几种方式
    win7 windows server 2008R2下 https SSL证书安装的搭配(搭配https ssl本地测试环境)
    使用word优雅的添加代码并上传到博客园(附:批量取消图片超链接方法)
    IIS服务器多域证书使用443端口解决方案
    服务器证书安装配置指南(IIS7)
  • 原文地址:https://www.cnblogs.com/undefined000/p/use-if-statement-in-less.html
Copyright © 2011-2022 走看看