用法

1. 必须在head内

2. 样式文件必须先加载

<head>

<meta charset='utf-8'>

<link rel="stylesheet/less" type="text/css" href="style.less" />

<script src="less.js"></script>

</head>

变量

普通用法:

@nice-blue:#555;

#header { color: @nice-blue; }

用变量名定义变量:

@fnord: "I am fnord.";

@var: 'fnord';

content: @@var;

变量只能定义一次

混合

定义一些通用的属性为一个class,然后在另一个class中去调用(id同理)

普通用法:

.bordered {

border-top: dotted 1px black;

}

#menu a{

color:#111;

.bordered;

}

带参数混合:或设置默认值 .bordered(@color:#f00){...}

.bordered(@color) {

border-top: dotted 1px black;

}

#menu a{

color:#111;

.bordered(blue);

}

@arguments 变量:包含了所有传递进来的参数

.box-shadow( @x:0, @y:0, @blur:1px, @color:#000 ){

box-shadow:@arguments;

}

.box-shadow(2px,5px);

输出:

box-shadow:2px 5px 1px #000;

模式匹配

根据不同的参数和值

.mixin (dark, @color) {

color: darken(@color, 10%);

}

.mixin (light, @color) {

color: lighten(@color, 10%);

}

.mixin (@_, @color) {

display: block;

}

@switch: light;

.class {

.mixin(@switch, #888);

}

得到的css是:

.class {

color: #a2a2a2;

display: block;

}

根据表达式

全部比较运算有   >  >=  =  =<  <

除去关键字true以外的值都被视示布尔假

所有条件用逗号进行分隔:.mixin (@a) when (@a > 10), (@a < -10) { ... }

.mixin (@a) when (lightness(@a) >= 50%) {

background-color: black;

}

.mixin (@a) when (lightness(@a) < 50%) {

background-color: white;

}

.mixin (@a) {

color: @a;

}

.class1 { .mixin(#ddd) }

.class2 { .mixin(#555) }

得到的css是:

.class1 {

background-color: black;

color: #ddd;

}

.class2 {

background-color: white;

color: #555;

}

根据值的类型

例如,.mixin (@a, @b: 0) when (isnumber(@b)) { ... }

常见的检测函数:iscolor、isnumber、isstring、iskeyword、isurl

判断一个值是纯数字,还是某个单位量:ispixel、ispercentage、isem

使用and / not关键字:与、或条件

.mixin (@a) when (isnumber(@a)) and (@a > 0) { ... }

.mixin (@b) when not (@b > 0) { ... }

嵌套

#header        { color: black;

.navigation  { font-size: 12px }

.logo        { width: 300px;

&:hover    { text-decoration: none } //&是串联选择器,相当于 .logo:hover{...}

}

}

运算

使用变量

@base: 5%;

@filler: @base * 2;

变量和变量的运算

@other: @base + @filler;

颜色:除法、加法

color: #888 / 4;

background-color: @base-color + #111;

尺寸:乘法、加法 (可以使用括号)

@var: 1px + 5;

width:(@var+5)*2;

穿插在复合属性中

border:(@width*2) solid black;


 

color函数

lighten(@color, 10%);

darken(@color, 10%);

saturate(@color, 10%);

desaturate(@color, 10%);

fadein(@color, 10%);

fadeout(@color, 10%);

fade(@color, 50%);

spin(@color, 10);

spin(@color, -10);

mix(@color1, @color2)

hue(@color);

lightness(@color);

@new: hsl(hue(@old), 45%, 90%); //@new 将会保持 @old的 色调, 但是具有不同的饱和度和亮度.

Math函数

round

ceil

floor

percentage

其他点

命名空间

1.定义一些属性集,打包在bundle中

#bundle {

.button () {

display: block;

&:hover {
background-color: white }

}

.tab { ... }

.citation { ... }

}

2.这样引入使用

#header a{

color:orange;

#bundle > .button;

}

作用域

@var: red;

#page {

@var: white;

#header {

color: @var; // white

}

}

#footer {

color: @var; // red

}

注释

/* hello,comment! */

// hi,comment!

但是,双斜线的注释在编译的过程中会被过滤掉

Importing

@import "lib.less";

@import "lib";//可以省略.less后缀

@import "lib.css";//less不会对它进行处理

字符串中插入变量:@{varName}

@base-url: "//abc.com";

background-image: url("@{base-url}/images/bg.png");

避免编译:在字符串前加上一个 ~

.class{

filter:
~"ms:always.say";

}

使用js表达式:在字符串前后加上一个反引号

@var: `"hello".toUpperCase()
+ '!'`;

@height: `document.body.clientHeight`;

@color: color(`window.colors.baseColor`);

;

less (css预处理)的更多相关文章

  1. 利用CSS预处理技术实现项目换肤功能(less css + asp.net mvc4.0 bundle)

    一.背景 在越来越重视用户体验的今天,换肤功能也慢慢被重视起来.一个web系统用户可以选择一个自己喜欢的系统主题,在用户眼里还是会多少加点分的.我们很开心的是easyui v1.3.4有自带defau ...

  2. CSS预处理器之SASS用法指南

    CSS预处理器之SASS用法指南 一.什么是SASS Sass是是一种基于ruby编写的CSS预处理器,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护. 诞生于200 ...

  3. 第二次讨论——响应式设计、布局技巧、css性能优化、css预处理

    第二次讨论 [响应式设计] 集中创建页面的图片排版大小,可以智能地根据用户行为以及使用的设备环境(系统平台.屏幕尺寸.屏幕定向等)进行相对应的布局. 响应式布局: meta标签的实用:设置布局宽度等于 ...

  4. css预处理语言--让你的css编写更加简单方便

    CSS预处理语言之一-------LESS Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量.Mixin.函数等特性,使 CSS 更易维护和扩展. Less 可以运行在 Nod ...

  5. CSS预处理语言

    CSS预处理语言 Less,Sass,Stylus 安装 Less yarn add less 运行命令 ./node_modules/.bin/lessc 嵌套规则 Less.Sass嵌套规则一样 ...

  6. CSS预处理语言-less 的使用

    Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量.Mixin.函数等特性,使 CSS 更易维护和扩展. Less 可以运行在 Node 或浏览器端. Less的编译处理 作为一 ...

  7. css预处理scss环境配置

    css 预处理器 CSS 预处理器用一种专门的编程语言,进行 Web css编码,然后再编译成正常的 CSS 文件,以供项目使用:说简单点就是在某个环境下写css 可以写变量.表达式.嵌套等,在通过该 ...

  8. 前端面试:css预处理

    css预处理定义: 定义了一种新的语言,其基本思想是用一种专门编程语言,为css增加了一些编程的特性,将css作为目标生成文件,然后开发者就只要使用这种语言进行编码工作. 几种预处理语言 sass l ...

  9. Less:Less(CSS预处理语言)

    ylbtech-Less:Less(CSS预处理语言) Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合(mixin).函数等功能,让 CSS 更易维护.方便制作主题 ...

  10. CSS 预处理语言之 less 篇

    less 前言 Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合(mixin).函数等功能,让 CSS 更易维护.方便制作主题.扩充. 安装 客户端使用 // 引入 ...

随机推荐

  1. Scala和Java二种方式实战Spark Streaming开发

    一.Java方式开发 1.开发前准备:假定您以搭建好了Spark集群. 2.开发环境采用eclipse maven工程,需要添加Spark Streaming依赖. 3.Spark streaming ...

  2. [转载]Linux 卸载JDK并安装新版本JDK (rpm,tar)

    FROM:http://josh-persistence.iteye.com/blog/1908549 一.查看Jdk的安装路径: whereis javawhich java (java执行路径)e ...

  3. Javascript modules--js 模块化

    https://medium.freecodecamp.org/javascript-modules-a-beginner-s-guide-783f7d7a5fcc 这个网站也是非常好:https:/ ...

  4. 编译安装Apache httpd和php搭建KodExplorer网盘

    编译安装Apache httpd和php搭建KodExplorer网盘 环境说明: 系统版本    CentOS 6.9 x86_64 软件版本    httpd-2.2.31        php- ...

  5. 2017.5.15 markdown简明教程

    0.说明 markdown是一种书写格式,html是一种发布格式.markdown的语法种类只对应html标记的一小部分(只涵盖纯文本). 不在markdown涵盖范围的标签,都可以直接在文档里用ht ...

  6. Hibernate级联及控制反转的增删改查

    在JavaHibernate中,双向多对一的操作一直是一个重点难点,本篇文章就是来探讨这个问题. 双向多对一:一个班级对应多个学生,多个学生同属于一个班级,通过班级信息可以查到班级内的学生,通过学生可 ...

  7. autoRelease

    cocos2dx采用的是引用计数的方式来管理对象的持有和释放. 所谓引用计数就是说,每个对象都会有一个属性用来记录当前被几个地方引用了.在释放内存的时候会根据这个引用计数来确定是否要用delete操作 ...

  8. Intent之对象传递(Parcelable传递对象和对象集合)

    接着上一篇文章,以下我们讨论一下怎样利用Parcelable实现Intent之间对象的传递 一.实现对象传递 首先创建User.java实现Parcelable接口: package org.yayu ...

  9. crm使用soap取消用户訪问记录权限

    //取消訪问权限 function demo() {     //操作记录的id     var targetId = "A8A46444-BA10-E411-8A04-00155D002F ...

  10. Delphi Math里的基本函数,以及浮点数比较函数

    Delphi里的好东西太多,多到让人觉得烦.这种感觉就是当年打游戏<英雄无敌3>,改了钱以后,有钱了每天都要造建筑,明明是好事,可是让人觉得烦. 先记录下来,以后再回来加强对Math单元的 ...