zoukankan      html  css  js  c++  java
  • Less主要用法

    一、混合(Mixin)

    原css中的样式如:

    .header {
       width:200px;
       height:100px;   
    }
    .header .word{
        color:red;
    }

    less中的写法可以

    .word{
       color:red;  
    }
    
    .header{
         width:200px;
         height:100px;
         .word;  
    }

    这样写可以减少冗余如果还有别的样式还需要color:red,就可以再次引入.word即可;

    二、嵌套规则

    less还允许css样式的嵌套,看原来代码写法:

    #header {
      color: black;
    }
    #header .navigation {
      font-size: 12px;
    }
    #header .logo {
      width: 300px;
    }

    现在可以这么写

    #header {
      color: black;
      .navigation {
        font-size: 12px;
      }
      .logo {
        width: 300px;
      }
    }

    三、运算

    任何数字、颜色或者变量都可以参与运算。下面是一组案例:

    //变量
    @base: 5%; @filler: @base * 2; @other: @base + @filler;
    // 用法 color: #888 / 4; background-color: @base-color + #111; height: 100% / 2 + @filler;

    四、命名空间&访问器

    通过上面我们知道可以这样写样式

    #bundle {
      .button {
        display: block;
        border: 1px solid black;
        background-color: grey;
        &:hover {
          background-color: white
        }
      }
      .tab { ... }
      .citation { ... }
    }

    如果现在我们想把.button的样式写到#header a 里,我们可以这么做

    #header a {
      color: orange;
      #bundle > .button;
    }

    五、变量范围

    像其它编辑语言一样,先找本地如果找不到找父级的范围。

    @var: red;
    
    #page {
      @var: white;
      #header {
        color: @var; // white
      }
    }

    在写css中我们经常用到某些通用的样式,但是数值不一样,我们可以这么做

    .border-radius(@radius:5px){
     -webkit-border-radius:@radius; 
    -moz-border-radius:@radius; 
    border-radius:@radius; 
    }
    
    .radius-test{
        width:50px;
        .border-radius(10px);  
    }

    这样我们可以把通用的样式抽取出来,不用再写那么多代码

    六、函数

    Less 内置了多种函数用于转换颜色、处理字符串、算术运算等。这些函数在函数手册中有详细介绍。

    函数的用法非常简单。下面这个例子将介绍如何将 0.5 转换为 50%,将颜色饱和度增加 5%,以及颜色亮度降低 25% 并且色相值增加 8 等用法:

    @base: #f04615;
    @ 0.5;
    
    .class {
      width: percentage(@width); // returns `50%`
      color: saturate(@base, 5%);
      background-color: spin(lighten(@base, 25%), 8);
    }
    Nam

     避免直接编译,让浏览器编译

    .width-test{
        width:~'calc(300px-10px)';    
    }

    七、父选择符& 

    a {
      color: blue;
      &:hover {
        color: green;
      }
    }

    .button {
    &-ok {
    background-image: url("ok.png");
    }
    }

    .grand {
    .parent {
    & > & {
    color: red;
    }
    }
    }

    .header {
    .menu {
    border-radius: 5px;
    .no-borderradius & {
    background-image: url('images/button-background.png');
    }
    }
    }

    编译后的结果:

    a {
      color: blue;
    }
    a:hover {
      color: green;
    }

    .button-ok {
    background-image: url("ok.png");
    }

    .grand .parent > .grand .parent {
    color: red;
    }

    .header .menu { border-radius: 5px; }
    .no-borderradius .header .menu { background-image: url('images/button-background.png'); }

    八、条件判断

    button when (@my-option = true) {
      color: white;
    }

    导引中可用的全部比较运算有: > >= = =< <

    九、import

    你可以在main文件中通过下面的形势引入 .less 文件, .less 后缀可带可不带:

    @import "lib.less";
    @import "lib";

    如果你想导入一个CSS文件而且不想LESS对它进行处理,只需要使用.css后缀就可以:

    @import "lib.css";

     

  • 相关阅读:
    shell脚本练习
    Linux 在线模拟器
    附件2:async/await
    附件1:setTimeout与闭包
    Java基础复习(二、String相关)
    Java基础复习(一、数据类型)
    Java的自动装箱和拆箱
    牛客网
    创建新模块时遇到的几个问题
    Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
  • 原文地址:https://www.cnblogs.com/myzy/p/7423858.html
Copyright © 2011-2022 走看看