附上我的开发规范与公用mixin:
本文所有的实例都可以在less公用mixin 找到
不同主题的颜色字体等变量定义规范:
假设有一蓝色主题,且起名为”Blue”。那么:
- 其下的所有变量都以”Blue”为开头起名
- 变量名应包含主要特征和用途,若用途较多用”color”声明
- 对于一些动作变化效果,如hover的颜色效果,最后再跟上对应的动作名
实例:
1 | @Blue-color-blue:#1D89E4;//用途较多,是此主题的主色 |
这样,就定义了一套主题的颜色。下面的语句决定我们使用的主题:
1 | @theme-color:@Blue-color-blue; |
这里定义的变量才是实际在项目中用的,这些名称只包含了主要作用,而不包含特征。要切换不同的主题,只需要该这些变量对应的值就可以了。
跟主题无关的颜色字体等变量定义规范:
和跟主题相关的颜色名称定义类似,只不过开头不用加主题名,使用的时候可以明显区分主题相关的颜色和不相关的颜色。
- 用途较多的颜色:不用声明作用,只需用单词表明特征即可
- 一些有常规用途的颜色:声明主要作用和特征
这个比较灵活,具体视情况而定。
实例:
1 | @white:#fff; |
兼容不同浏览器的样式mixin
以.开头,其名称与样式的名称一致:
实例1:
1 | .border-radius(...){ |
实例2:linear-gradient的兼容处理
这儿就能感觉到less的缺陷,判断关键词只有个when,为后面sass的用法埋个伏笔
1 | //gradient开始 |
特殊的mixin
一些常用的
实例:
1 | .clearfix{ |
特殊的keyframes(只能生成单属性的动画定义)
实例:
1 | .keyframs(2,@prop,@start,@end){ |
复合样式mixin:
注意:此部分废弃,因为项目中大多数是设了部分属性,如margin-top和margin-right,但如果用了此mixin,会造成多了margin-bottom和margin-left属性,即使他们设的是默认属性。这样很不好,如果要修改这个mixin,由于less中的判断只有when关键字,类似于上面的line-gradient,所以要写11条(怎么算出来的:$C_4^2+C_4^3+1$)的判断,很麻烦,所以废弃。后面会有sass的方法,完美解决这个问题
实例:
1 | //根据不同的参数只设置部分属性,其他的还是默认值0 |
为了区分兼容不同浏览器的mixin,这个采用”驼峰命名法”.


