Less的基本使用

2018-10-18  本文已影响0人  一许青衫一

背景

  CSS自诞生以来,其基本语法和核心机制一直没有本质上的变化,它的发展几乎是表现力层面上的提升。最开始 CSS 在网页中的作用只是辅助式性的装饰,轻便易学就是最大的需求。这也决定了 CSS 它只是一种叙述语言,而不是编程语言(编程语言具有逻辑,变量,条件语句)。但是随着互联网的发展,网站的复杂度已经不可同日而语,原生 CSS 已经让开发者越加吃力。
  当一门语言的能力不足而用户的环境又不支持其它选择的时候,这门语言就会沦为“编译目标”语言。开发者将选择另一名更高级的语言来进行开发,然后编译到底层语言进行实际运行。
  于是,在前端领域,CSS 预处理器就应用而生,而 CSS 这门古老的语言以另一种方式 “重新适应” 了网页开发的需求。它的基本思想是,用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件。根本目的,是提高写网页样式的效率。目前主要的CSS预处理器有两种:SASS与Less。

Sass与Scss是什么关系?

Sass的缩排语法,对于写惯css前端的web开发者来说很不直观,也不能将css代码加入到Sass里面,因此sass语法进行了改良,Sass 3就变成了Scss(sassy css)。与原来的语法兼容,只是用{}取代了原来的缩进。
Less也是一种动态样式语言. 对CSS赋予了动态语言的特性,如变量,继承,运算, 函数. Less 既可以在客户端上运行 (支持IE 6+, Webkit, Firefox),也可在服务端运行 (借助 Node.js)。

如何使用Less?

  最基本的方式就是在页面中引入less.js文件,就像一般使用jQuery库一样,具体步骤可以去Less官网查阅。另一种更加方便的方法就是安装IDE插件,例如在使用Sublime的时候,安装一个less插件,就可以直接在代码中使用Less,编译器自动给你转为对应的css代码。

Less的功能特性

我们使用Less是为了增加网页开发的效率,以下为Less中的功能特性:

.nav {margin: auto /* 水平居中 */; width: 1000px; color: #333;}
    .nav li {float: left /* 水平排列 */; width: 100px;}
        .nav li a {display: block; text-decoration: none;}

这种写法需要我们手工维护缩进关系,当上级选择符发生变化时,所有相关的下级选择符都要修改;此外,把每条规则写成一行也不易阅读,为单条声明写注释也很尴尬(只能插在声明之间了)。
在 CSS 预处理语言中,嵌套语法可以很容易地表达出规则之间的层级关系,为单条声明写注释也很清晰易读:

.nav {
    margin: auto; // 水平居中
    width: 1000px;
    color: #333;
    li {
        float: left; // 水平排列
        width: 100px;
        a {
            display: block;
            text-decoration: none;
        }
    }
}
  1. & 的妙用
    & :代表的上一层选择器的名字
  2. 媒体查询(待补充)
/* Less */
.card { // 等价于 .card()
      background: #f6f6f6;
      -webkit-box-shadow: 0 1px 2px rgba(151, 151, 151, .58);
      box-shadow: 0 1px 2px rgba(151, 151, 151, .58);
  }
  #wrap{
    .card;//等价于.card();
  }
  /* 生成的 CSS */
  #wrap{
    background: #f6f6f6;
    -webkit-box-shadow: 0 1px 2px rgba(151, 151, 151, .58);
    box-shadow: 0 1px 2px rgba(151, 151, 151, .58);
  }

其中 .card.card()是等价的,为了表达更加清楚,我选择使用.card()
要点:
.# 皆可作为 方法前缀。
方法后写不写 () 看个人习惯。

上一篇 下一篇

猜你喜欢

热点阅读