zoukankan      html  css  js  c++  java
  • LESS的一点自己的理解(2)

      上次写的一点居然忘了保存了,虽然说编辑器有自动保存的功能,但是昨天写的依然找不到了,/(ㄒoㄒ)/~~那好吧,重新开始写。

      1.上篇写到了Mixins(混入),如果你仔细看了上面的例子,你就会发现其实有一种嵌套用法我们一直在用,却没有明确的表现出来。先看下面的Html代码

    1 <div id="home">
    2     <div id="top">top</div>
    3     <div id="center">
    4         <div id="left">left</div>
    5         <div id="right">right</div>
    6     </div>
    7 </div>

    上面的层级关系相信不用我多说,大家一看就能明白。如果这时让我们写Css是不是要#home{……}、#home #top{……}、#home #center #left{……},这样一个一个的嵌套,如果少写了几个就会造成书写的权重不够,从而导致以后的更改,或者是自己的校验造成很大的麻烦。所以就有必要看看Less是怎么干的了。

     1 #home {
     2     color: blue;
     3     width: 600px;
     4     height: 500px;
     5     border: outset;
     6      #top {
     7          border: outset;
     8          width: 90%;
     9      }
    10      #center {
    11          border: outset;
    12          height: 300px;
    13          width: 90%;
    14          #left {
    15              border: outset;
    16              float: left;
    17              width: 40%;
    18          }
    19          #right {
    20              border: outset;
    21              float: left;
    22              width: 40%;
    23          }
    24      }
    25 }

    发现这里写样式就和Html一样,嵌套关系非常的明显。父子关系清晰,权重问题不用担心,最小的辈分权重最大,可以看看编译之后的效果:

     1  #home {
     2      color: blue;
     3      width: 600px;
     4      height: 500px;
     5      border: outset;
     6  }
     7  
     8  #home #top {
     9      border: outset;
    10      width: 90%;
    11  }
    12  
    13  #home #center {
    14      border: outset;
    15      height: 300px;
    16      width: 90%;
    17  }
    18  
    19  #home #center #left {
    20      border: outset;
    21      float: left;
    22      width: 40%;
    23  }
    24  
    25  #home #center #right {
    26      border: outset;
    27      float: left;
    28      width: 40%;
    29  }

    编译之后就会发现,其实跟我们自己写的是一样的。他会把每个标签都写上,这样就不会担心权重的问题。

      既然有了嵌套,就不得不提到“&”,直接看下面的例子:

    1 a {
    2     color: red;
    3     text-decoration: none;
    4     &:hover {  // 有 & 时解析的是同一个元素或此元素的伪类,没有 & 解析是后代元素
    6         color: black;
    7         text-decoration: underline;
    8     }
    9 }

    然后是编译之后的效果:

    1  a {
    2      color: red;
    3      text-decoration: none;
    4  }
    5  a:hover {
    6      color: black;
    7      text-decoration: underline;
    8  }

      2.既然说Less特别像JS,最少是不是能进行加减运算呢,其实还真能,但是怎么加减乘除运算呢,难道一个padding:5px+padding:5px=10px???当然不是了,请看下面的例子:

    1  @init: #111111;
    2  @transition: @init*2;
    3  .switchColor {
    4      color: @transition;
    5  }

    在代码中定义了两个变量,第一个变量是@init,他代表着一个颜色#111111;然后@teansition是@init*2;其实我也蒙了,这是什么呢?请看编译完成之后的效果:

     1 .switchColor {  color: #222222;  } 其实就是进行了简单的乘法,我们知道白色就是#FFFFFF,要是#AAAAAA*2呢?结果会是什么呢?首先看一下Less:

    1 @init:#AAAAAA;
    2 @init2:@init*2;
    3 .color{
    4     color: @init2;
    5 }

    编译之后的Css文件: 1 .color {  color: #ffffff; }//也就是说最大就是#FFFFFF,不能超出这个范围了。 

      到这里基本上Less的常用方法就是这些了。还有关于颜色的一些用法,因为我不是很常用,就不在这里一一赘述了。有兴趣的朋友可以去看Less的官网。 http://lesscss.org/#-color-functions

      最后能给大家一个非常使用的小工具,考拉,非常的方便的一个LESS编译小工具,关键是还有中文。http://pan.baidu.com/s/1jH95hBK

  • 相关阅读:
    常用的系统存储过程
    考勤信息(员工打卡)
    项目经理评分(评价)
    体验套餐管理系统
    C#中简单的继承和多态
    面向对象的七个设计原则
    office 2010 安装时出错 MSXML版本6.10.1129.0
    phpstorm + Xdebug断点调试PHP
    wamp server 3.0.0 修改默认浏览器,软件语言和配置文件编辑器
    vue.js指令v-model实现方法
  • 原文地址:https://www.cnblogs.com/daniao11417/p/6546996.html
Copyright © 2011-2022 走看看