Sublime Text
Chrome浏览器调试
首先根据实例编写html代码,这块不是重点也比较简单,可自行查看下图。
然后根据实例编写less代码,这一块是本文的重点,将对照实例中的代码一个个分析常用的语言特性。 1.变量:允许单独定义一系列通用的样式,然后在需要的时候去调用,所以调整全局样式的时候只需要修改几行代码就可以。如下图: 实例定义了变量红色“@redColor: #ff0000”,其他地方需要红色时候,只需要输入变量@redColor;适合于整体色调的修改,比如原先设计是红色,这个时候把全部红色都写成一个变量引用,如果后面改成绿色系,就只需要修改变量值就可以满足要求。 Tips:如果色系值有稍微区别可以使用变量+运算。
2.混合:可以将一个定义好的class A轻松的引入到另一个class B中,从而简单实现class B继承class A中的所有属性;我们还可以带参数地调用,就像使用函数一样。如下图: 第一种(不带参数的混合),实例定义了class“.bounded”,里面包含两个样式,其他地方需要这些样式时候,只需要输入“.bounded;适合于当有多个样式被不同地方引用时候,只需要写一个公共的class,其它地方引用就可以,不用每个地方都独立写一个; 第二种(带参数的混合),实例定义了class“.objectSize (@size)”,在第一种的优点外,还可以灵活变动里面的值,所以还适合值有不一样的地方。
3.嵌套:可以在一个选择器中嵌套另一个选择器来实现继承,这样很大程度减少了代码量,并且代码看起来更加的清晰。如下图: 整体都是一层层嵌套代码,从最外围慢慢写到里面的元素;当外层更改class时候,只需要修改相应位置的值就可以,不用跟css一样,要修改很多地方。 Tips:实例中的“&.title”相当于“span.title”。
4.函数和运算:运算提供了加,减,乘,除操作;我们可以做属性值和颜色的运算,这样就可以实现属性值之间的复杂关系。LESS中的函数一一映射了JavaScript代码,如果你愿意的话可以操作属性值。如下图: 实例定义了变量计算值“@redColor”,其他地方可以根据该计算值计算出新值。
5.作用域:跟其他编程语言非常类似,首先会从本地查找变量或者混合模块,如果没找到的话会去父级作用域中查找,直到找到为止。如下图: 实例定义了变量“@redColor”两次,而“&.prices”的“color”本地没有定义变量@redColor,就会一层层往上找,刚往上一级就找到赋值“#000”,这个时候就停止往上找,并把该变量值赋给“color”,所以最后显示黑色。
6.注释:与JS雷同,“//”一般用于单行,“/* */”一般用于多行。
该实例是为了演示,会出现只有一个重复地方就使用混合或变量等,这种是不合理的,所以编写less时候需根据实际情况使用less的语言特性。