变量

  1. //->LESS代码
  2. @link-color: #428bca;
  3. @link-color-hover: darken(@link-color, 10%);
  4. a {
  5. color: @link-color;
  6. &:hover {
  7. color: @link-color-hover;
  8. }
  9. }
  10. .box {
  11. color: @link-color;
  12. }
  13.  
  14. //->编译为CSS的结果
  15. a {
  16. color: #428bca;
  17. }
  18. a:hover {
  19. color: #3071a9;
  20. }

  

混入(Mixins)

  1. // 定义一个样式选择器
  2. .roundedCorners(@radius:5px) {
  3. -moz-border-radius: @radius;
  4. -webkit-border-radius: @radius;
  5. border-radius: @radius;
  6. }
  7. // 在另外的样式选择器中使用
  8. #header {
  9. .roundedCorners;
  10. }
  11. #footer {
  12. .roundedCorners(10px);
  13. }
  14. //经过编译生成的 CSS 文件如下:
  15. #header {
  16. -moz-border-radius:5px;
  17. -webkit-border-radius:5px;
  18. border-radius:5px;
  19. }
  20. #footer {
  21. -moz-border-radius:10px;
  22. -webkit-border-radius:10px;
  23. border-radius:10px;
  24. }
  25.  
  26. ------------------------------------------------------------------------
  27. //->LESS代码
  28. .transition(@property:all;@duration:1s;@function:linear;@delay:0s;) {
  29.    -webkit-transition: @arguments;
  30.   transition: @arguments;
  31. }
  32. .box1 {
  33. .transition;
  34. }
  35.  
  36. //->编译为CSS的结果
  37. .box1 {
  38.   -webkit-transition: all 1s linear 0s;
  39.    transition: all 1s linear 0s;
  40. }

  

继承(extend)

  1. //->LESS代码
  2. .public {
  3. width: 100px;
  4. height: 100px;
  5. }
  6.  
  7. nav ul {
  8. &:extend(.public);
  9. list-style: none;
  10. }
  11.  
  12. //->编译为CSS的结果
  13. .public, nav ul {
  14. width: 100px;
  15. height: 100px;
  16. }
  17.  
  18. nav ul {
  19. list-style: none;
  20. }
  21. 或者:
  22. //->LESS代码
  23. .public {
  24. width: 100px;
  25. height: 100px;
  26. }
  27. nav ul:extend(.public) {
  28. list-style: none;
  29. }
  30. //->编译为CSS的结果和第一种写法一样

  

作用域

  1. //->LESS代码
  2. @color: #ccc;
  3. .box {
  4. @color: #eee;
  5. .gray {
  6. color: @color;
  7. }
  8. }
  9. .box2 {
  10. .gray {
  11. color: @color;
  12. }
  13. }
  14.  
  15. //->编译为CSS的结果
  16. .box .gray {
  17. color: #eee;
  18. }
  19. .box2 .gray {
  20. color: #ccc;
  21. }

  

运算

  1. @init: #111111;
  2. @transition: @init*2;
  3. .switchColor {
  4. color: @transition;
  5. }
  6. //经过编译生成的 CSS 文件如下:
  7. .switchColor {
  8. color: #222222;
  9. }
  10. ------------------------------------------------------------------------------
  11. //->LESS代码
  12. .mixin (@a) when (lightness(@a) >= 50%) {
  13. background-color: black;
  14. }
  15. .mixin (@a) when (lightness(@a) < 50%) {
  16. background-color: white;
  17. }
  18. .box1{
  19. .mixin(#ddd);
  20. }
  21. .box2{
  22. .mixin(#555);
  23. }
  24. //->编译为CSS的结果
  25. .box1 {
  26. background-color: black;
  27. }
  28. .box2 {
  29. background-color: white;
  30. }

  

函数

  1. LESS 还有一个专门针对 color 的操作提供一组函数。下面是 LESS 提供的针对颜色操作的函数列表:
  2. lighten(@color, 10%); // return a color which is 10% *lighter* than @color
  3. darken(@color, 10%); // return a color which is 10% *darker* than @color
  4. saturate(@color, 10%); // return a color 10% *more* saturated than @color
  5. desaturate(@color, 10%);// return a color 10% *less* saturated than @color
  6. fadein(@color, 10%); // return a color 10% *less* transparent than @color
  7. fadeout(@color, 10%); // return a color 10% *more* transparent than @color
  8. spin(@color, 10); // return a color with a 10 degree larger in hue than @color
  9. spin(@color, -10); // return a color with a 10 degree smaller hue than @color
  10. PS: 上述代码引自 LESS CSS 官方网站,详情请见 http://lesscss.org/#-color-functions
  11. 使用这些函数和 JavaScript 中使用函数一样。
  12.  
  13. @init: #f04615;
  14. #body {
  15. background-color: fadein(@init, 10%);
  16. }
  17. 经过编译生成的 CSS 文件如下:
  18.  
  19. #body {
  20. background-color: #f04615;
  21. }

 

递归

  1. Less中,混合可以调用它自身。这样,当一个混合递归调用自己,再结合Guard条件表达式,就可以写出循环结构。使用递归循环最常见的情况就是生成栅格系统的CSS
  2.  
  3. //->LESS代码
  4. .generate-columns(4);
  5. .generate-columns(@n, @i: 1) when (@i <= @n) {
  6. .column-@{i} {
  7. width: (@i * 100% / @n);
  8. }
  9. .generate-columns(@n, (@i + 1));
  10. }
  11.  
  12. //->输出的CSS
  13. .column-1 {
  14. width: 25%;
  15. }
  16.  
  17. .column-2 {
  18. width: 50%;
  19. }
  20.  
  21. .column-3 {
  22. width: 75%;
  23. }
  24.  
  25. .column-4 {
  26. width: 100%;
  27. }

  

导入(import)

  1. //->LESS代码
  2. @import "public.less";
  3.  
  4. .box {
  5. &:after {
  6. .clear;
  7. }
  8. }
  9.  
  10. //->输出的CSS:会把public中的样式也输出
  11. .clear {
  12. display: block;
  13. height: 0;
  14. content: "";
  15. clear: both;
  16. zoom: 1;
  17. }
  18.  
  19. .box:after {
  20. display: block;
  21. height: 0;
  22. content: "";
  23. clear: both;
  24. zoom: 1;
  25.   
  26. }

  

less基础语法的更多相关文章

  1. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  2. iOS-----正则表达式的基础语法

    正则表达式简单语法总结 一.什么是正则表达式 从概念上来说,正则表达式也是一门小巧而精炼的语言,它可以用来简化检索特定的字符串,替换特定字符等功能,有许多开发语言工具,都内嵌支持正则表达式.那么一个正 ...

  3. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  4. emmet 系列(1)基础语法

    emmet 系列(1)基础语法 emmet 是一个能显著提升开发html和css开发效率的web开发者工具 emmet基本上目前已知的编辑器都有相应的插件,各个编辑器的emmet插件的下载地址:点我下 ...

  5. Scala基础语法 (一)

    如果你之前是一名 Java 程序员,并了解 Java 语言的基础知识,那么你能很快学会 Scala 的基础语法. Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的. 我 ...

  6. Java基础语法

    java基础学习总结——基础语法1 一.标识符

  7. javascript中正则表达式的基础语法

    × 目录 [1]定义 [2]特点 [3]元字符[4]转义字符[5]字符组[6]量词[7]括号[8]选择[9]断言[10]模式[11]优先级[12]局限性 前面的话 正则表达式在人们的印象中可能是一堆无 ...

  8. Swift基础语法学习总结(转)

    Swift基础语法学习总结 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift使用print和println打印,它的传参是一个泛型 ...

  9. 黑马程序员——OC语言基础语法 面向对象的思想

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结)(一)基础语法 1)关键字 @interface.@implementati ...

  10. 【OC基础语法考试】

    OC基础语法已经全部学完,但是这些知识只是最基础的,还有很多高级知识,这个可能需要后面慢慢的去学习才能体会到.接下来我会总结前面的OC基础语法,如果大家发现有什么不正确的地方,请指正,小弟是新生,多请 ...

随机推荐

  1. BST 解析 (一)

    这篇博文主要初步介绍Binary Search Tree(BST)的一些基本功能以及应用场景,由于BST的相关知识比较多,下一节会接着补充BST的一些功能.这一节主要分为以下三个要素: BST 的定义 ...

  2. Qt颜色下拉框

    上周为了用Qt写一个类似颜色下拉框的东西,查阅了网上的多数相关资料,依然没有我想要的.终于在周四的时候下定决心重写QCombobox类来实现功能,现在把它贴出来,望看到的人,批评指正.废话不多说,先上 ...

  3. ionic3中NavController类push setRoot相关问题解决

    今天在测试app的时候发现,登录页跳转到首页后,会加载两次数据.百思不得其解,查看了所有代码也没能发现问题.最终抱着尝试的态度,动了如下代码: if (suc) { //this.navCtrl.pu ...

  4. 如何在README.md文件中添加图片

    原文链接:https://www.cnblogs.com/hongmaju/p/6873720.html 1.在github上的仓库建立一个存放图片的文件夹,文件夹名字随意.如:img-folder ...

  5. SpringBoot零基础入门指南--搭建Springboot然后能够在浏览器返回数据

    File->new Project 修改默认包名,根据自己的喜好修改 选择初始化需要导入的包,尽量不要一开始就导入很多,特别是数据库,不然启动可能会有问题,创建好的目录如下: 配置文件写在app ...

  6. 计算rem

    (function(doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? ' ...

  7. C# DateDateTimePicker设置属性ShowCheckBox为True

    DateDateTimePicker的属性ShowCheckBox为True后,可以使用时间控件的复选框. 但是如果,你想设置CheckBox的选中状态为False的话,那么请注意赋时间值和赋状态值的 ...

  8. Codeforces Round #436 (Div. 2)

    http://codeforces.com/contest/864 第一次打cf的月赛-- A 题意:给你一个数列,问你能不能保证里面只有两种数且个数相等.2<=n<=100,1<= ...

  9. Codeforces Gym 101521A Shuttle Bus

    题意:给定一个2*N的方格,从左上角开始走,有些格子不能走,问能否一次遍历所有能走的方格 在Gym上看到一场香港的比赛,很好奇就去看了一下,发现第一题很有趣,并且很水,似乎讨论一下奇偶性就行了,然后. ...

  10. ubuntu更换开机动画

    ubuntu更换启动动画 作为一个个用linux作为桌面环境,并且完全替代了windows的来说,怎么折腾好看,是一个重要的问题,而Ubuntu的开机动画,那紫色的画面,ubuntu那几个大字,实在丑 ...