- // 使用not关键字实现或条件
- .mixin (@b) when not (@b > 0) {}
- #header {
-
- color: black;
-
- .navigation {
- font-size: 12px;
- }
-
- .logo {
- width: 300px;
- &:hover {
- text-decoration: none;
- }
- }
-
- }
- // 任何数字、颜色或者变量都可以参与运算
-
- // less能够分辨出颜色和单位
- @var: 1px + 5;
-
- // 使用括号
- width: (@var + 5) * 2;
-
- // 在复合属性中运算
- border: (@width * 2) solid black;
- lighten(@color, 10%); // 轻
- darken(@color, 10%); // 深
- saturate(@color, 10%); // 饱和
- desaturate(@color, 10%); // 稀释
- fadein(@color, 10%); // 渐显
- fadeout(@color, 10%); // 渐隐
- fade(@color, 50%); // 透明
- spin(@color, 10); // 大10度
- spin(@color, -10); // 小10度
- mix(@color1, @color2); // 组合
-
- // 使用
- @base: #f04615;
-
- .class {
- color: saturate(@base, 5%);
- background-color: lighten(spin(@base, 8), 25%);
- }
-
- // 提取颜色信息
- hue(@color); // 色度
- saturation(@color); // 饱和度
- lightness(@color); // 亮度
-
- // 在一种颜色的通道上创建另一种颜色
- // @new 将会保持@old的色调, 但是具有不同的饱和度和亮度
- // hsl函数同时使用上述3种函数
- @new: hsl(hue(@old), 45%, 90%);
- ceil(2.4); // 向上
- round(1.67); // 四舍五入
- floor(2.6); // 向下
- percentage(0.5); // 转成百分比
- // 为了更好组织CSS或者单纯是为了更好的封装,
- // 将一些变量或者混合模块打包起来,
- // 定义一些属性集之后可以重复使用
- #bundle {
- .button() {
- display: block;
- border: 1px solid black;
- background-color: grey;
- &:hover {
- background-color: white;
- }
- }
- .tab {}
- .citation {}
- }
-
- // 在#header a中引入.button
- #header a {
- color: orange;
- #bundle > .button;
- }
- // 首先会从本地查找变量或者混合模块,
- // 如果没找到的话会去父级作用域中查找,直到找到为止
- @var: red;
-
- #page {
- @var: white;
- #header {
- color: @var; // white
- }
- }
-
- #footer {
- color: @var; // red
- }
- /* Hello, I'm a CSS-style comment */
- .class { color: black }
-
- // less同样也支持双斜线的注释, 但是编译成 CSS 的时候自动过滤掉:
- // Hi, I'm a silent comment, I won't show up in your CSS
- .class { color: white }
- // 在main文件中引入.less文件,.less后缀可带可不带
- @import "lib.less";
- @import "lib";
-
- // 导入一个CSS文件而且不想less对它进行处理,只需要使用.css后缀就可以
- @import "lib.css";
- // 变量可以使用@{name}这样的结构嵌入到字符串中
- @base-url: "http://assets.fnord.com";
- background-image: url("@{base-url}/images/bg.png");
- // 如果需要输出一些不正确的CSS语法
- // 或者使用一些less不认识的专有语法
- // 要输出这样的值可以在字符串前加上一个~
- .class {
- filter: ~"ms:alwaysHasItsOwnSyntax.For.Stuff()";
- }
- // 通过反引号的方式使用
- @var: `"hello".toUpperCase() + '!'`;
-
- // 可以同时使用字符串插值和避免编译
- @str: "hello";
- @var: ~`"@{str}".toUpperCase() + '!'`;
-
- // 可以访问JavaScript环境
- @height: `document.body.clientHeight`;
-
- // 将一个JavaScript字符串解析成16进制的颜色值
- @color: color(`window.colors.baseColor`);
- @darkcolor: darken(@color, 10%);