LESS 学习笔记

编译器

  • koala 编译器

    • 创建一个 style 文件夹,在其中创建 .less 文件,将文件夹拖入 koala 编译器

      koala 编译器
    • .less 文件上 -- 右键 -- 设置输出路径

      normal 不压缩 / compress 压缩

    • html 文件中引用时还是引用 .css 的文件
      <link rel="stylesheet" href="less/test.css">

  • Node.js

  • 浏览器端


用法

  • 注释:

      //  编译后不会保留
      /*  编译后会被保留  */  
    
  • 变量

    @test_width:300px;
    
    .box{
        width:@test_width;
        height:@test_width;
        background-color: green;
    }
    
  • 混合

       // .less
      .box{
          width:@test_width;
          height:@test_width;
          background-color: yellow;
          .border;               // 看这行
      }
      .border{
          border:10px solid red;
      }
      //  编译后
      .box {
        width: 300px;
        height: 300px;
        background-color: yellow;
        border: 10px solid red;     // 把 .border 合并到了 .box 中
      }
      .border {
        border: 10px solid red;
      }
    
    // 带参数的样式,:后是默认值
    .border_02(@border_width:30px){
        border:@border_width solid blue;
    }
    
  • 匹配模式

      // 匹配模式
      .triangle(@_){        // .triangle 的公用样式
          width:0px;
          height:0px;
          overflow: hidden;
      }
      .triangle(top,@w:50px,@c:#ccc){
          border-width:@w;
          border-color: transparent transparent @c transparent;
          border-style: solid;
      }
      .triangle(bottom,@w:50px,@c:#ccc){
          border-width:@w;
          border-color: @c transparent transparent transparent;
          border-style: solid;
      }
    
      .sanjiao{    // html 标签的类名
          .triangle(bottom);     // 如果匹配名打错,则只匹配 .triangle(@_)
      };
    
  • 运算,保证运算符前后留有空格,不然有时候会出错

      @width_02:200px;
    
      .calc{
          width:(@width_02 - 20) * 5;      //  900px
          color:#ccc - 50;      // color: #9a9a9a;
      }
    
  • 嵌套

    • 后代元素:直接写在父元素内
      // less
      .init{
          height:100px;
          width:100px;
          background-color: red;
          margin:10px;
      }
      section{
          background-color: blue;
          div{
              .init
          }
      }
    
      // css
      section div {
        height: 100px;
        width: 100px;
        background-color: red;
        margin: 10px;
      }
    
    • 子元素:写在父元素内,&>xxx 通过 & 来表示上一级。也可以配合伪类使用,例如: &:hover
      // less
      section{
          background-color: blue;
          &>div{
              width:20px;
              height:20px;
              background-color: red;
          }
          &:hover{
              background-color: yellow
          }
      }
    
      // css
      section > div {
        width: 20px;
        height: 20px;
        background-color: red;
      }
      section:hover {
        background-color: #ffff00;
      }
    
  • arguments

      .border_03(@width:5px,@style:solid,@color:black){
          border:@arguments;
      }
    
  • 避免编译:通过 ~'样式' 实现

    // less
      .calc{
          width:~'calc(300px - 30px)';
          height:calc(300px - 30px)
      }
    
    // css
      .calc {
        width: calc(300px - 30px);
        height: calc(270px);
      }
    
  • !important 加在 less 样式中,使得所有编译后的样式都带有 !important

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Less作为 CSS 的一种扩展,不仅完全兼容 CSS 语法,而且连新增的特性也是使用 CSS 语法,你可以在任何...
    zhangivon阅读 614评论 0 1
  • 各种纯css图标 CSS3可以实现很多漂亮的图形,我收集了32种图形,在下面列出。直接用CSS3画出这些图形,要比...
    剑残阅读 9,766评论 0 8
  • 一、简介二、编译工具kaola(推荐)、node.js、浏览器三、用法(一)变量@变量名:值;(二)混合将一个包含...
    Lareina林暖暖阅读 294评论 0 0
  • 1.长方形 #Rectangle{ width: 200px; height: 50px; background-...
    一直以来都很好阅读 522评论 0 0
  • 很积极的报名了中欧的校园开放日,开放日的内容是宣讲+体验+试讲的方式,很经典,在客户期望管理上,中欧的做法真值得很...
    哎呦我的喵阅读 384评论 0 0