Less支持的内置函数。

Edit the markdown source for "misc-functions"

color

解析颜色,将表示颜色的字符串转换为颜色值。

参数: string:表示颜色值的字符串。

返回值: color

示例: color("#aaa");

编译为: #aaa

image-size

从文件中获取图像尺寸。

参数: string: 所需获取尺寸的文件。

返回值: dimension

示例: image-size("file.png");

编译为: 10px 10px

注意:这个功能需要由每个环境来实现。 它目前仅在node环境中可用。

添加版本: v2.2.0

image-width

从文件中获取图像宽度。

参数: string: 所需获取尺寸的文件。

返回值: dimension

示例: image-width("file.png");

编译为: 10px

注意:这个功能需要由每个环境来实现。 它目前仅在node环境中可用。

添加版本: v2.2.0

image-height

从文件中获取图像高度。

参数: string: 所需获取尺寸的文件。

返回值: dimension

示例: image-height("file.png");

编译为: 10px

注意:这个功能需要由每个环境来实现。 它目前仅在node环境中可用。

添加版本: v2.2.0

convert

将数字从一个单位转换为另一个单位。

第一个参数为一个带单位的数字,第二个参数为单位。 如果这些单位是兼容的,则数字被转换。 如果它们不兼容,则第一个参数将不被修改。

参见 单位不做转换的情况下改变单位。

可转换的单位:

  • 长度: m, cm, mm, in, pt, pc,
  • 时间: s, ms,
  • 角度: rad, deg, grad, turn.

参数:

  • number: 带单位的浮点数。
  • identifier, string或者 escaped value: 单位

返回值: number

示例:

convert(9s, "ms")
convert(14cm, mm)
convert(8, mm) // 不可转换的单位类型

编译为:

9000ms
140mm
8

data-uri

如果用ieCompat选项打开并且资源太大,或者如果在浏览器中使用该函数,则将资源内联进样式表并返回到url()。 如果没有指定MIME类型,node将使用MIME包来决定正确的MIME类型。

参数:

  • mimetype: (可选)MIME类型字符串。
  • url: 要内联的文件的URL。

如果没有指定mimetype,data-uri函数会从文件名后缀中猜出来。 Text文本和SVG文件按照utf-8编码,其他都会按base64编码。

如果提供了mimetype,且mimetype参数以base64结尾,则函数使用base64。 例如,image / jpeg; base64按照编base64码,而text / html按照utf-8编码。

示例: data-uri('../data/image.jpg');

编译为: url('data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg==');

浏览器中编译为: url('../data/image.jpg');

示例: data-uri('image/jpeg;base64', '../data/image.jpg');

编译为: url('data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg==');

示例: data-uri('image/svg+xml;charset=UTF-8', 'image.svg');

编译为: url("data:image/svg+xml;charset=UTF-8,%3Csvg%3E%3Ccircle%20r%3D%229%22%2F%3E%3C%2Fsvg%3E");

default

仅可在guard条件下使用,在没有其他mixin匹配的情况下返回“true”,否则返回“false”。

示例:

.mixin(1)                   {x: 11}
.mixin(2)                   {y: 22}
.mixin(@x) when (default()) {z: @x}

div {
  .mixin(3);
}

div.special {
  .mixin(1);
}

编译为:

div {
  z: 3;
}
div.special {
  x: 11;
}

It is possible to use the value returned by default with guard operators. For example .mixin() when not(default()) {} will match only if there's at least one more mixin definition that matches.mixin() call:

可以使用default返回的值给guard操作符。 例如.mixin() when not(default()) {}只会在匹配至少一个.mixin()mixin时定义才会调用:

.mixin(@value) when (ispixel(@value)) {width: @value}
.mixin(@value) when not(default())    {padding: (@value / 5)}

div-1 {
  .mixin(100px);
}

div-2 {
  /* ... */
  .mixin(100%);
}

编译为:

div-1 {
  width: 100px;
  padding: 20px;
}
div-2 {
  /* ... */
}

允许在相同的guard条件下或在具有相同名称的mixins的不同条件下进行多个default()调用:

div {
  .m(@x) when (default()), not(default())    {always: @x}
  .m(@x) when (default()) and not(default()) {never:  @x}

  .m(1); // OK
}

然而,如果使用default()检测到多个mixin定义之间的潜在冲突,Less会抛出错误:

div {
  .m(@x) when (default())    {}
  .m(@x) when not(default()) {}

  .m(1); // 报错
}

在上面的例子中,因为它们递归地相互依赖,不能确定每个default()调用应该返回什么值。

多重default() 高级用法:

.x {
  .m(red)                                    {case-1: darkred}
  .m(blue)                                   {case-2: darkblue}
  .m(@x) when (iscolor(@x)) and (default())  {default-color: @x}
  .m('foo')                                  {case-1: I am 'foo'}
  .m('bar')                                  {case-2: I am 'bar'}
  .m(@x) when (isstring(@x)) and (default()) {default-string: and I am the default}

  &-blue  {.m(blue)}
  &-green {.m(green)}
  &-foo   {.m('foo')}
  &-baz   {.m('baz')}
}

编译为:

.x-blue {
  case-2: #00008b;
}
.x-green {
  default-color: #008000;
}
.x-foo {
  case-1: I am 'foo';
}
.x-baz {
  default-string: and I am the default;
}

default函数作为Less内置函数只能在guard表达式中使用。 如果在mixin guard条件之外使用,则将其解释为常规CSS值:

示例:

div {
  foo: default();
  bar: default(42);
}

编译为:

div {
  foo: default();
  bar: default(42);
}

unit

删除或更改尺寸的单位

参数:

  • dimension: 一个带尺寸或者不带尺寸的数字。
  • unit: (可选)要更改的单位,或者如果省略,将删除单位。

参见 转换 用于转换单位。

示例: unit(5, px)

编译为: 5px

示例: unit(5em)

编译为: 5

get-unit

返回一个数字的单位。

如果参数包含带有单位的数字,则该函数返回其单位。 没有单位的参数会返回一个空值。

参数:

  • number: 一个带尺寸或者不带单位的数字。

示例: get-unit(5px)

编译为: px

示例: get-unit(5)

编译为: //nothing

svg-gradient

生成多颜色svg渐变。

Svg-gradient函数生成多颜色Svg-gradient。 它必须至少有三个参数。 第一个参数指定渐变类型和方向,其余参数列表颜色及其位置。 第一个和最后一个指定颜色的位置是可选的,其余颜色必须指定位置。

方向必须是 to bottom, to right, to bottom right, to top right, ellipse 或者 ellipse at center 其中之一。方向可以被指定为转义值~'to bottom' 和空格分隔的词语列表to bottom

方向必须跟着两个或更多的颜色。 它们可以在列表中提供,也可以在不同的参数中指定每种颜色。

参数 - 颜色在列表中:

  • escaped valuelist of identifiers: 方向
  • list - 所有的颜色和他们在列表中的位置

参数 - 颜色在参数中:

  • escaped valuelist of identifiers: 方向
  • color [percentage] : 第一种颜色及其相对位置(位置可选)
  • color percent : (可选)第二种颜色及其相对位置
  • ...
  • color percent : (可选)第n种颜色及其相对位置
  • color [percentage] : 最后一个颜色及其相对位置(位置可选)

返回值:带有“URI编码”的渐变的url

示例 - 多颜色在列表中:

div {
  @list: red, green 30%, blue;
  background-image: svg-gradient(to right, @list);
}

等同于颜色在参数中:

div {
  background-image: svg-gradient(to right, red, green 30%, blue);
}

同样的结果:

div {
  background-image: url('data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20width%3D%22100%25%22%20height%3D%22100%25%22%20viewBox%3D%220%200%201%201%22%20preserveAspectRatio%3D%22none%22%3E%3ClinearGradient%20id%3D%22gradient%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%220%25%22%20y1%3D%220%25%22%20x2%3D%22100%25%22%20y2%3D%220%25%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%23ff0000%22%2F%3E%3Cstop%20offset%3D%2230%25%22%20stop-color%3D%22%23008000%22%2F%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%230000ff%22%2F%3E%3C%2FlinearGradient%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%221%22%20height%3D%221%22%20fill%3D%22url(%23gradient)%22%20%2F%3E%3C%2Fsvg%3E');
}

注意:在2.2.0之前的版本中,结果是base64编码。

生成的背景图像左侧为红色,宽度为30%时为绿色,结束时为蓝色。 Base64编码的部分包含以下svg-gradient:

<?xml version="1.0" ?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%" viewBox="0 0 1 1" preserveAspectRatio="none">
    <linearGradient id="gradient" gradientUnits="userSpaceOnUse" x1="0%" y1="0%" x2="100%" y2="0%">
        <stop offset="0%" stop-color="#ff0000"/>
        <stop offset="30%" stop-color="#008000"/>
        <stop offset="100%" stop-color="#0000ff"/>
    </linearGradient>
    <rect x="0" y="0" width="1" height="1" fill="url(#gradient)" />
</svg>

Edit the markdown source for "string-functions"

escape

URL-encoding用于在输入的字符串中找到的特殊字符。

  • 这些字符不被编码: ,, /, ?, @, &, +, ', ~, ! and $.
  • 最常见的编码字符是: \<space\>, #, ^, (, ), {, }, |, :, >, <, ;, ], [ and =.

参数: string: 需要转义的字符串。

返回值: string - 不带引号的转义字符串内容。

示例:

escape('a=1')

编译为:

a%3D1

注意:如果参数不是一个字符串,输出为未定义。 当前的实现为如果是颜色返回undefined,其他类型参数返回原输入。 不应该依赖这种行为,以后可能会改变这种实现。

e

CSS转义,替换为~"value"语法。

e期望以字符串作为参数,并返回不带引号的内容,但没有引号。 可以用来输出不是有效的CSS语法的CSS值,或者使用Less无法识别的专有语法。

参数: string - 需要转义的字符串。

返回值: string - 不带引号的转义字符串内容。

示例:

filter: e("ms:alwaysHasItsOwnSyntax.For.Stuff()");

编译为:

filter: ms:alwaysHasItsOwnSyntax.For.Stuff();

注意:函数也接受~""转义值和数字作为参数。 其他任何东西都会返回错误。

% format

%(string, arguments ...) 格式化一个字符串。

第一个参数是带占位符的字符串。 所有占位符以百分号%开头,后跟字母 s,S,d,D,a, 或 A。 剩余的参数为替换占位符的表达式。 如果您需要输出百分比符号,请用另一个百分比'%%`将其转义。

如果需要将特殊字符转义为utf-8转义码,请使用大写字母占位符。 转义除了()'~!以外的所有特殊字符。 空格编码为%20。 小写字母占位符保留特殊字符。

占位符:

  • d, D, a, A - 可以被任何类型的参数(颜色,数字,转义值,表达式...)所取代。 如果将它们与字符串结合使用,则将使用整个字符串 - 包括引号。 但是,在在字符串中放置引号时,引号不会被“/”和类似的东西转义。
  • s, S - 可以被任何表达式替换。 如果使用字符串,只能使用字符串值 - 引号被忽略。

参数:

  • string: 格式化带占位符的字符串,
  • anything* : 用来替换占位符的值。

返回值: 被格式化的 string.

示例:

format-a-d: %("repetitions: %a file: %d", 1 + 2, "directory/file.less");
format-a-d-upper: %('repetitions: %A file: %D', 1 + 2, "directory/file.less");
format-s: %("repetitions: %s file: %s", 1 + 2, "directory/file.less");
format-s-upper: %('repetitions: %S file: %S', 1 + 2, "directory/file.less");

编译为:

format-a-d: "repetitions: 3 file: "directory/file.less"";
format-a-d-upper: "repetitions: 3 file: %22directory%2Ffile.less%22";
format-s: "repetitions: 3 file: directory/file.less";
format-s-upper: "repetitions: 3 file: directory%2Ffile.less";

replace

替换字符串中的文本

发布 v1.7.0

参数:

  • string: 要查找和替换的字符串。
  • pattern: 要查找的字符串或正则表达式模式。
  • replacement: 用来替换匹配模式的字符串。
  • flags: (可选)正则表达式标志。

返回值: 带有替换值的字符串。

示例:

replace("Hello, Mars?", "Mars\?", "Earth!");
replace("One + one = 4", "one", "2", "gi");
replace('This is a string.', "(string)\.$", "new $1.");
replace(~"bar-1", '1', '2');

编译为:

"Hello, Earth!";
"2 + 2 = 4";
'This is a new string.';
bar-2;

Edit the markdown source for "list-functions"

length

返回值列表中的元素数。

参数: list - 逗号或空格分隔的值列表。 返回值: 列表中的整数个元素。

示例: length(1px solid #0080ff); 编译为: 3

示例:

@list: "banana", "tomato", "potato", "peach";
n: length(@list);

编译为:

n: 4;

extract

返回列表中指定位置的值。

参数: list - 逗号或空格分隔的值列表。 index - 一个整数,指定要返回的列表元素的位置。 返回值: 列表中指定位置的值。

示例: extract(8px dotted red, 2); 编译为: dotted

示例:

@list: apple, pear, coconut, orange;
value: extract(@list, 3);

编译为:

value: coconut;

Edit the markdown source for "math-functions"

ceil

向上取整。

参数: number - 一个浮点数。

返回值: integer

示例: ceil(2.4)

编译为: 3

floor

向下取整。

参数: number - 一个浮点数。

返回值: integer

示例: floor(2.6)

编译为: 2

percentage

将浮点数转换为百分比字符串。

参数: number - 一个浮点数。

返回值: string

示例: percentage(0.5)

编译为: 50%

round

四舍五入

参数:

  • number: 一个浮点数。
  • decimalPlaces: 可选:四舍五入到的小数位数。 默认为0。

返回值: number

示例: round(1.67)

编译为: 2

示例: round(1.67, 1)

编译为: 1.7

sqrt

计算一个数字的平方根,同时保持单位原样。

参数: number - 一个浮点数。

返回值: number

示例:

sqrt(25cm)

编译为:

5cm

示例:

sqrt(18.6%)

编译为:

4.312771730569565%;

abs

计算一个数字的绝对值。 保持单位原样。

参数: number - 一个浮点数。

返回值: number

示例 #1: abs(25cm)

编译为: 25cm

示例 #2: abs(-18.6%)

编译为: 18.6%;

sin

计算正弦函数。

假设数字弧度上没有单位。

参数: number - 一个浮点数。

返回值: number

示例:

sin(1); // sine of 1 radian
sin(1deg); // sine of 1 degree
sin(1grad); // sine of 1 gradian

编译为:

0.8414709848078965; // sine of 1 radian
0.01745240643728351; // sine of 1 degree
0.015707317311820675; // sine of 1 gradian

asin

计算反正弦函数。

以弧度返回数字 介于-π/2π/2之间的数字。

参数: number - [-1,1]区间内的浮点数。

返回值: number

示例:

asin(-0.8414709848078965)
asin(0)
asin(2)

编译为:

-1rad
0rad
NaNrad

cos

计算余弦函数。

假设数字弧度上没有单位。

参数: number - 一个浮点数。

返回值: number

示例:

cos(1) // 1弧度的余弦
cos(1deg) // 1度的余弦
cos(1grad) // 1百分度的余弦

编译为:

0.5403023058681398 // 1弧度的余弦
0.9998476951563913 // 1度的余弦
0.9998766324816606 // 1百分度的余弦

acos

计算反余弦函数。

以弧度返回数字 介于0和π之间的数字。

参数: number - [-1,1]区间内的浮点数。

返回值: number

示例:

acos(0.5403023058681398)
acos(1)
acos(2)

编译为:

1rad
0rad
NaNrad

tan

计算正切函数。

假设数字弧度上没有单位。

参数: number - 一个浮点数。

返回值: number

示例:

tan(1) // 1弧度的正弦
tan(1deg) // 1度的余弦
tan(1grad) // 1百分度的余弦

编译为:

1.5574077246549023   // 1弧度的正弦
0.017455064928217585 // 1度的余弦
0.015709255323664916 // 1百分度的余弦

atan

计算反正切函数。

以弧度返回数字 介于-π/2π/2之间的数字。

参数: number - 一个浮点数。

返回值: number

示例:

atan(-1.5574077246549023)
atan(0)
round(atan(22), 6) // 22反正切值,四舍五入到小数点后6位

编译为:

-1rad
0rad
1.525373rad;

pi

返回 π (pi);

参数: none

返回值: number

示例:

pi()

编译为:

3.141592653589793

pow

返回指数计算值。

返回值与第一个参数具有相同的尺寸,第二个参数的尺寸将被忽略。 该函数也能够处理负数和浮点数。

参数:

  • number: 基数 - 一个浮点数。
  • number: 指数 - 一个浮点数。

Returns: number

示例:

pow(0cm, 0px)
pow(25, -2)
pow(25, 0.5)
pow(-25, 0.5)
pow(-25%, -0.5)

编译为:

1cm
0.0016
5
NaN
NaN%

mod

返回余数。

返回值与第一个参数具有相同的尺寸,第二个参数的尺寸将被忽略。 该函数也能够处理负数和浮点数。

参数:

  • number: 一个浮点数。
  • number: 一个浮点数。

返回值: number

示例:

mod(0cm, 0px)
mod(11cm, 6px);
mod(-26%, -5);

编译为:

NaNcm;
5cm
-1%;

min

返回一个或多个值的最小值。

参数: value1, ..., valueN - 一个或多个值进行比较。

返回值: 最小值

示例: min(5, 10);

编译为: 5

示例: min(3px, 42px, 1px, 16px);

编译为: 1px

max

返回一个或多个值的最大值。

参数: value1, ..., valueN - 一个或多个值进行比较。

返回值: 最大值

示例: max(5, 10);

编译为: 10

示例: max(3%, 42%, 1%, 16%);

编译为: 42%


Edit the markdown source for "type-functions"

isnumber

如果值为数字返回 true,否则返回false

参数: value - 需要被判断的值或变量。

返回值: 如果值为数字返回 true,否则返回false

示例:

isnumber(#ff0);     // false
isnumber(blue);     // false
isnumber("string"); // false
isnumber(1234);     // true
isnumber(56px);     // true
isnumber(7.8%);     // true
isnumber(keyword);  // false
isnumber(url(...)); // false

isstring

如果值为字符串返回 true,否则返回false

参数: value - 需要被判断的值或变量。

返回值: 如果值为字符串返回 true,否则返回false

示例:

isstring(#ff0);     // false
isstring(blue);     // false
isstring("string"); // true
isstring(1234);     // false
isstring(56px);     // false
isstring(7.8%);     // false
isstring(keyword);  // false
isstring(url(...)); // false

iscolor

如果值为颜色返回 true,否则返回false

参数: value - 需要被判断的值或变量。

返回值: 如果值为颜色返回 true,否则返回false

示例:

iscolor(#ff0);     // true
iscolor(blue);     // true
iscolor("string"); // false
iscolor(1234);     // false
iscolor(56px);     // false
iscolor(7.8%);     // false
iscolor(keyword);  // false
iscolor(url(...)); // false

iskeyword

如果值是关键字返回true,否则返回false

参数: value - 需要被判断的值或变量。

返回值: 如果值为关键字返回 true,否则返回false

示例:

iskeyword(#ff0);     // false
iskeyword(blue);     // false
iskeyword("string"); // false
iskeyword(1234);     // false
iskeyword(56px);     // false
iskeyword(7.8%);     // false
iskeyword(keyword);  // true
iskeyword(url(...)); // false

isurl

如果值是url返回true,否则返回false

参数: value - 需要被判断的值或变量。

返回值: 如果值是url返回true,否则返回false

示例:

isurl(#ff0);     // false
isurl(blue);     // false
isurl("string"); // false
isurl(1234);     // false
isurl(56px);     // false
isurl(7.8%);     // false
isurl(keyword);  // false
isurl(url(...)); // true

ispixel

如果值是像素返回true,否则返回false

参数: value - 需要被判断的值或变量。

返回值: 如果值是像素返回true,否则返回false

示例:

ispixel(#ff0);     // false
ispixel(blue);     // false
ispixel("string"); // false
ispixel(1234);     // false
ispixel(56px);     // true
ispixel(7.8%);     // false
ispixel(keyword);  // false
ispixel(url(...)); // false

isem

如果是一个em值返回true,否则返回false

参数: value - 需要被判断的值或变量。

返回值: 如果是一个em值返回true,否则返回false

示例:

isem(#ff0);     // false
isem(blue);     // false
isem("string"); // false
isem(1234);     // false
isem(56px);     // false
isem(7.8em);    // true
isem(keyword);  // false
isem(url(...)); // false

ispercentage

如果是一个百分比值返回true,否则返回false

参数: value - 需要被判断的值或变量。

返回值: 如果是一个百分比值返回true,否则返回false

示例:

ispercentage(#ff0);     // false
ispercentage(blue);     // false
ispercentage("string"); // false
ispercentage(1234);     // false
ispercentage(56px);     // false
ispercentage(7.8%);     // true
ispercentage(keyword);  // false
ispercentage(url(...)); // false

isunit

如果值是以指定单位表示的数字,则返回true,否则返回false

参数:

  • value - 需要被判断的值或变量。
  • unit - 用一个单位标识符(可选引用)测试。

如果值是以指定单位表示的数字,则返回true,否则返回false

示例:

isunit(11px, px);  // true
isunit(2.2%, px);  // false
isunit(33px, rem); // false
isunit(4rem, rem); // true
isunit(56px, "%"); // false
isunit(7.8%, '%'); // true
isunit(1234, em);  // false
isunit(#ff0, pt);  // false
isunit("mm", mm);  // false

isruleset

如果某个值是规则集,则返回true;否则返回false

参数:

  • value - 需要被判断的变量。

返回值: 如果值是一个规则集,则为true,否则为false

示例:

@rules: {
    color: red;
}

isruleset(@rules);   // true
isruleset(#ff0);     // false
isruleset(blue);     // false
isruleset("string"); // false
isruleset(1234);     // false
isruleset(56px);     // false
isruleset(7.8%);     // false
isruleset(keyword);  // false
isruleset(url(...)); // false

Edit the markdown source for "color-definition"

rgb

用十进制红,绿和蓝(RGB)值创建一个不透明的颜色对象。

标准HTML/CSS格式的文字颜色值也可用于定义颜色,例如#ff0000

参数:

  • red: 整数0-255或百分比0-100%。
  • green: 整数0-255或百分比0-100%。
  • blue: 整数0-255或百分比0-100%。

返回值: color

示例: rgb(90, 129, 32)

编译为: #5a8120

rgba

使用十进制红,绿,蓝和alpha(RGBA)值创建透明颜色对象。

参数:

  • red: 整数0-255或百分比0-100%。
  • green: 整数0-255或百分比0-100%。
  • blue: 整数0-255或百分比0-100%。
  • alpha: 数字0-1或百分比0-100%。

返回值: color

示例: rgba(90, 129, 32, 0.5)

编译为: rgba(90, 129, 32, 0.5)

argb

#AARRGGBB格式(NOT #RRGGBBAA!)创建颜色的十六进制表示形式。

这种格式用于Internet Explorer,.NET和Android开发。

参数: color, 颜色对象。

返回值: string

示例: argb(rgba(90, 23, 148, 0.5));

编译为: #805a1794

hsl

根据色调,饱和度和亮度(HSL)值创建不透明的颜色对象。

参数:

  • hue: 表示度数的整数0-360。
  • saturation: 百分比0-100%或数字0-1。
  • lightness: 百分比0-100%或数字0-1。

返回值: color

示例: hsl(90, 100%, 50%)

编译为: #80ff00

当想基于另一种颜色的通道创建新的颜色时,这很有用, 例如: @new: hsl(hue(@old), 45%, 90%);

@new会有@oldhue值,以及它自己的饱和度和亮度。

hsla

根据色调,饱和度,亮度和alpha(HSLA)值创建透明颜色对象。

参数:

  • hue: 表示度数的整数0-360。
  • saturation: 百分比0-100%或数字0-1。
  • lightness: 百分比0-100%或数字0-1。
  • alpha: 百分比0-100%或数字0-1。

返回值: color

示例: hsla(90, 100%, 50%, 0.5)

编译为: rgba(128, 255, 0, 0.5)

hsv

从色调,饱和度和值(HSV)值创建不透明的颜色对象。

请注意,与hsl不同,这种方式可用于Photoshop中的颜色空间。

参数:

  • hue: 表示度数的整数0-360。
  • saturation: 百分比0-100%或数字0-1。
  • value: 百分比0-100%或数字0-1。

返回值: color

示例: hsv(90, 100%, 50%)

编译为: #408000

hsva

根据色调,饱和度,值和alpha(HSVA)值创建一个透明的颜色对象。

请注意,与hsla不同,这种方式可用于Photoshop中的颜色空间。

参数:

  • hue: 表示度数的整数0-360。
  • saturation: 百分比0-100%或数字0-1。
  • value: 百分比0-100%或数字0-1。
  • alpha: 百分比0-100%或数字0-1。

返回值: color

示例: hsva(90, 100%, 50%, 0.5)

编译为: rgba(64, 128, 0, 0.5)


Edit the markdown source for "color-channel"

hue

在HSL颜色空间中提取颜色对象的色调通道。

参数: color - a color object.

返回值: integer 0-360

示例: hue(hsl(90, 100%, 50%))

编译为: 90

saturation

在HSL颜色空间中提取颜色对象的饱和度通道。

参数: color - 一个颜色对象。

返回值: percentage 0-100

示例: saturation(hsl(90, 100%, 50%))

编译为: 100%

lightness

提取HSL颜色空间中颜色对象的亮度通道。

参数: color - 一个颜色对象。

返回值: percentage 0-100

示例: lightness(hsl(90, 100%, 50%))

编译为: 50%

hsvhue

提取HSV颜色空间中的颜色对象的色调通道。

参数: color - 一个颜色对象。

返回值: integer 0-360

示例: hsvhue(hsv(90, 100%, 50%))

编译为: 90

hsvsaturation

提取HSV颜色空间中颜色对象的饱和度通道。

参数: color - 一个颜色对象。

返回值: percentage 0-100

示例: hsvsaturation(hsv(90, 100%, 50%))

编译为: 100%

hsvvalue

提取HSV颜色空间中颜色对象的值通道。

参数: color - 一个颜色对象。

返回值: percentage 0-100

示例: hsvvalue(hsv(90, 100%, 50%))

编译为: 50%

red

提取颜色对象的红色通道。

参数: color - 一个颜色对象。

返回值: float 0-255

示例: red(rgb(10, 20, 30))

编译为: 10

green

提取颜色对象的绿色通道。

参数: color - 一个颜色对象。

返回值: float 0-255

示例: green(rgb(10, 20, 30))

编译为: 20

blue

提取颜色对象的蓝色通道。

参数: color - 一个颜色对象。

返回值: float 0-255

示例: blue(rgb(10, 20, 30))

编译为: 30

alpha

提取颜色对象的Alpha通道。

参数: color - 一个颜色对象。 返回值: float 0-1

示例: alpha(rgba(10, 20, 30, 0.5))

编译为: 0.5

luma

计算颜色对象的亮度(感知亮度)。

用途SMPTE C / Rec. 709系数,如WCAG 2.0中所建议的。 这个计算也用在对比度函数中。

在v1.7.0之前,没有gamma校正的情况下计算亮度,使用亮度函数来计算这些“旧”值。

参数: color - 一个颜色对象。

返回值: percentage 0-100%

示例: luma(rgb(100, 200, 30))

编译为: 44%

luminance

计算没有gamma校正的亮度值(这个函数在v1.7.0之前被命名为luma)

参数: color - 一个颜色对象。

返回值: percentage 0-100%

示例: luminance(rgb(100, 200, 30))

编译为: 65%


Edit the markdown source for "color-operations"

颜色操作通常与正在更改的值保持相同的单位参数,并将百分比作为绝对值处理,因此将10%值增加10%会得到20%。 选项方法参数设置为百分比的相对值。 当使用相对百分比时,10%的值增加10%,结果是11%。 数值不会被包裹,并被限制在允许的范围内。 在显示返回值的地方,除了十六进制版本之外,我们还使用格式来清楚说明每个函数的功能。

saturate

HSL颜色空间中的颜色饱和度增加绝对量。

参数:

  • color: 一个颜色对象。
  • amount: 百分比0-100%。
  • method: 可选,设置 relative为相对于当前值的校准。

返回值: color

示例: saturate(hsl(90, 80%, 50%), 20%)

编译为: #80ff00 // hsl(90, 100%, 50%)

Color 1Color 2

desaturate

将HSL颜色空间中的颜色饱和度降低绝对值。

参数:

  • color: 一个颜色对象。
  • amount: 百分比0-100%。
  • method: 可选,设置 relative为相对于当前值的校准。

返回值: color

示例: desaturate(hsl(90, 80%, 50%), 20%)

编译为: #80cc33 // hsl(90, 60%, 50%)

Color 1Color 2

lighten

增加HSL颜色空间中颜色的亮度绝对量。

参数:

  • color: 一个颜色对象。
  • amount: 百分比0-100%。
  • method: 可选,设置 relative为相对于当前值的校准。

返回值Returns: color

示例: lighten(hsl(90, 80%, 50%), 20%)

编译为: #b3f075 // hsl(90, 80%, 70%)

Color 1Color 2

darken

减少HSL颜色空间中颜色的亮度绝对量。

参数:

  • color: 一个颜色对象。
  • amount: 百分比0-100%。
  • method: 可选,设置 relative为相对于当前值的校准。

返回值: color

示例: darken(hsl(90, 80%, 50%), 20%)

编译为: #4d8a0f // hsl(90, 80%, 30%)

Color 1Color 2

fadein

Decrease the transparency (or increase the opacity) of a color, making it more opaque.

Has no effect on opaque colors. To fade in the other direction use fadeout.

Parameters:

  • color: 一个颜色对象。
  • amount: 百分比0-100%。
  • method: 可选,设置 relative为相对于当前值的校准。

返回值: color

示例: fadein(hsla(90, 90%, 50%, 0.5), 10%)

编译为: rgba(128, 242, 13, 0.6) // hsla(90, 90%, 50%, 0.6)

fadeout

增加颜色的透明度(或降低不透明度),使其不透明度降低。 要淡出另一个方向使用fadein

示例:

  • color: 一个颜色对象。
  • amount: 百分比0-100%。
  • method: 可选,设置 relative为相对于当前值的校准。

返回值: color

示例: fadeout(hsla(90, 90%, 50%, 0.5), 10%)

编译为: rgba(128, 242, 13, 0.4) // hsla(90, 90%, 50%, 0.4)

fade

设置颜色的绝对不透明度。 可以应用于颜色,不管它们是否已经具有不透明度值。

参数:

  • color: 一个颜色对象。
  • amount: 百分比0-100%。

返回值: color

示例: fade(hsl(90, 90%, 50%), 10%)

编译: rgba(128, 242, 13, 0.1) //hsla(90, 90%, 50%, 0.1)

spin

向任一方向旋转颜色的色调角度。

当角度范围是0-360时,为一个360取余操作,所以你可以传入更大(或负)的值,并且它们将围绕例如 360度和720度的角度会产生相同的结果。 请注意,颜色是通过RGB转换传递的,它不保留灰度的色调值(因为在没有饱和度时色相没有意义),所以请确保用保留色调的方式应用函数,例如这样:

@c: saturate(spin(#aaaaaa, 10), 10%);

替换为:

@c: spin(saturate(#aaaaaa, 10%), 10);

颜色总是以RGB值的形式返回,因此将spin应用于灰度值将不会执行任何操作。

参数:

  • color: 一个颜色对象。
  • angle: 多个度数旋转(+或 - )。

返回值: color

示例:

spin(hsl(10, 90%, 50%), 30)
spin(hsl(10, 90%, 50%), -30)

编译为:

#f2a60d // hsl(40, 90%, 50%)
#f20d59 // hsl(340, 90%, 50%)

Color 1Color 2

Color 1Color 2

mix

以不同比例混合两种颜色。 计算中包含不透明度。

参数:

  • color1: 一个颜色对象。
  • color2: 一个颜色对象。
  • weight: 可选,两种颜色之间的百分比平衡点,默认为50%。

返回值: color

示例:

mix(#ff0000, #0000ff, 50%)
mix(rgba(100,0,0,1.0), rgba(0,100,0,0.5), 50%)

编译为:

#800080
rgba(75, 25, 0, 0.75)

Color 1 + Color 2Color 3

tint

以不同比例混合颜色与白色,和调用 mix(#ffffff, @color, @weight) 一样。

参数:

  • color: 一个颜色对象。
  • weight: 可选,颜色和白色之间的百分比平衡点,默认为50%。

返回值: color

示例:

no-alpha: tint(#007fff, 50%); 
with-alpha: tint(rgba(00,0,255,0.5), 50%);

编译为:

no-alpha: #80bfff;
with-alpha: rgba(191, 191, 255, 0.75);

Color 1Color 2

shade

以不同比例混合颜色与黑色,和调用 mix(#000000, @color, @weight)一样。

参数:

  • color: 一个颜色对象。
  • weight: 可选,颜色和白色之间的百分比平衡点,默认为50%。

返回值: color

示例:

no-alpha: shade(#007fff, 50%); 
with-alpha: shade(rgba(00,0,255,0.5), 50%);

编译为:

no-alpha: #004080;
with-alpha: rgba(0, 0, 64, 0.75);

Color 1Color 2

greyscale

去除HSL颜色空间中所有颜色的饱和度,和调用 desaturate(@color, 100%)一样。

Because the saturation is not affected by hue, the resulting color mapping may be somewhat dull or muddy; luma may provide a better result as it extracts perceptual rather than linear brightness, for example greyscale('#0000ff') will return the same value as greyscale('#00ff00'), though they appear quite different in brightness to the human eye.

参数: color: 一个颜色对象。

返回值: color

示例: greyscale(hsl(90, 90%, 50%))

编译为: #808080 // hsl(90, 0%, 50%)

Color 1Color 2

请注意,生成的灰色看起来比原来的绿色更暗,即使它的亮度值相同。

与使用luma比较(用法不同,因为luma返回一个单一的值,而不是一个颜色):

@c: luma(hsl(90, 90%, 50%));
color: rgb(@c, @c, @c);

编译为: #cacaca

Color 1Color 2

这一次灰色的亮度看起来和绿色一样,尽管其价值实际上更高。

contrast

选择两种颜色中的哪一种与另一种颜色形成最大对比。

这对于确保颜色在背景下可读取是有用的,这对于可访问性合规性也是有用的。 这个功能的工作原理与SASS在Compass中的对比度功能相同。 依据WCAG 2.0, 使用伽马校正的luma值来比较颜色,而不是它们的亮度。

可以按照任意顺序提供明暗参数 - 该功能将自动计算亮度值并指定明暗,这意味着您不能使用此功能通过颠倒顺序来选择最少对比色。

参数:

  • color: 要比较的颜色对象。
  • dark: 可选 - 指定的深色(默认为黑色)。
  • light: 可选 - 指定的浅色(默认为白色)。
  • threshold: 可选 - 百分比0-100%,指定从“暗”到“亮”转换的位置(默认为43%,与SASS匹配)。 这是用来以某种方式偏向对比度,例如让你决定50%的灰色背景是否会产生黑色或白色的文字。 一般情况下,对于“较亮”的调色板,这个设置较低,对于“较暗”的调色板设置得较高。

返回值: color

示例:

p {
    a: contrast(#bbbbbb);
    b: contrast(#222222, #101010);
    c: contrast(#222222, #101010, #dddddd);
    d: contrast(hsl(90, 100%, 50%), #000000, #ffffff, 30%);
    e: contrast(hsl(90, 100%, 50%), #000000, #ffffff, 80%);
}

编译为:

p {
    a: #000000 // black
    b: #ffffff // white
    c: #dddddd
    d: #000000 // black
    e: #ffffff // white
}

这些示例使用上述计算的颜色作为背景和前景; 您可以看到,尽管可以使用阈值来允许低对比度的结果,但是最终的结果并不是白底白字,也不是黑底黑字,如上例所示:

Color 1 Color 1 Color 1 Color 1 Color 1


Edit the markdown source for "color-blending"

这些操作与Photoshop,Fireworks或GIMP等图像编辑器中的混合模式相似(但不一定完全相同),因此您可以使用它们使CSS颜色与您的图像匹配。

multiply

两种颜色相乘。 来自两种颜色中的每一种的对应RGB通道相乘在一起,然后除以255.结果是较暗的颜色。

参数:

  • color1: 一个颜色对象。
  • color2: 一个颜色对象。

返回值: color

示例:

multiply(#ff6600, #000000);

Color 1 Color 2 Color 3

multiply(#ff6600, #333333);

Color 1 Color 2 Color 3

multiply(#ff6600, #666666);

Color 1 Color 2 Color 3

multiply(#ff6600, #999999);

Color 1 Color 2 Color 3

multiply(#ff6600, #cccccc);

Color 1 Color 2 Color 3

multiply(#ff6600, #ffffff);

Color 1 Color 2 Color 3

multiply(#ff6600, #ff0000);

Color 1 Color 2 Color 3

multiply(#ff6600, #00ff00);

Color 1 Color 2 Color 3

multiply(#ff6600, #0000ff);

Color 1 Color 2 Color 3

screen

做相反的“乘”。 结果是更明亮的颜色。

参数:

  • color1: 一个颜色对象。
  • color2: 一个颜色对象。

返回值: color

示例:

screen(#ff6600, #000000);

Color 1 Color 2 Color 3

screen(#ff6600, #333333);

Color 1 Color 2 Color 3

screen(#ff6600, #666666);

Color 1 Color 2 Color 3

screen(#ff6600, #999999);

Color 1 Color 2 Color 3

screen(#ff6600, #cccccc);

Color 1 Color 2 Color 3

screen(#ff6600, #ffffff);

Color 1 Color 2 Color 3

screen(#ff6600, #ff0000);

Color 1 Color 2 Color 3

screen(#ff6600, #00ff00);

Color 1 Color 2 Color 3

screen(#ff6600, #0000ff);

Color 1 Color 2 Color 3

overlay

结合multiplyscreen的效果。 有条件地使光通道更亮,暗通道更暗。 注意:条件的结果由第一个颜色参数确定。

参数:

  • color1: 基色对象。 也是决定性的颜色,使结果更轻或更深。
  • color2: 覆盖的颜色对象。

返回值: color

示例:

overlay(#ff6600, #000000);

Color 1 Color 2 Color 3

overlay(#ff6600, #333333);

Color 1 Color 2 Color 3

overlay(#ff6600, #666666);

Color 1 Color 2 Color 3

overlay(#ff6600, #999999);

Color 1 Color 2 Color 3

overlay(#ff6600, #cccccc);

Color 1 Color 2 Color 3

overlay(#ff6600, #ffffff);

Color 1 Color 2 Color 3

overlay(#ff6600, #ff0000);

Color 1 Color 2 Color 3

overlay(#ff6600, #00ff00);

Color 1 Color 2 Color 3

overlay(#ff6600, #0000ff);

Color 1 Color 2 Color 3

softlight

overlay类似,但是避免纯黑色导致纯黑色,纯白色导致纯白色。

参数:

  • color1: 一个颜色对象soft light另一个。
  • color2: 被soft lighten颜色对象。

返回值: color

示例:

softlight(#ff6600, #000000);

Color 1 Color 2 Color 3

softlight(#ff6600, #333333);

Color 1 Color 2 Color 3

softlight(#ff6600, #666666);

Color 1 Color 2 Color 3

softlight(#ff6600, #999999);

Color 1 Color 2 Color 3

softlight(#ff6600, #cccccc);

Color 1 Color 2 Color 3

softlight(#ff6600, #ffffff);

Color 1 Color 2 Color 3

softlight(#ff6600, #ff0000);

Color 1 Color 2 Color 3

softlight(#ff6600, #00ff00);

Color 1 Color 2 Color 3

softlight(#ff6600, #0000ff);

Color 1 Color 2 Color 3

hardlight

overlay相同,但颜色角色相反。

参数:

  • color1: overlay的颜色对象。
  • color2: 基色对象。 也是决定性的颜色,使结果更轻或更深。

返回值: color

示例:

hardlight(#ff6600, #000000);

Color 1 Color 2 Color 3

hardlight(#ff6600, #333333);

Color 1 Color 2 Color 3

hardlight(#ff6600, #666666);

Color 1 Color 2 Color 3

hardlight(#ff6600, #999999);

Color 1 Color 2 Color 3

hardlight(#ff6600, #cccccc);

Color 1 Color 2 Color 3

hardlight(#ff6600, #ffffff);

Color 1 Color 2 Color 3

hardlight(#ff6600, #ff0000);

Color 1 Color 2 Color 3

hardlight(#ff6600, #00ff00);

Color 1 Color 2 Color 3

hardlight(#ff6600, #0000ff);

Color 1 Color 2 Color 3

difference

逐个通道地从第一种颜色中减去第二种颜色。 负值被倒置。 减去黑色的结果没有变化; 减去白色导致颜色反转。

参数:

  • color1: 作为被减数的颜色对象。
  • color2: 作为减数的颜色对象。

返回值: color

示例:

difference(#ff6600, #000000);

Color 1 Color 2 Color 3

difference(#ff6600, #333333);

Color 1 Color 2 Color 3

difference(#ff6600, #666666);

Color 1 Color 2 Color 3

difference(#ff6600, #999999);

Color 1 Color 2 Color 3

difference(#ff6600, #cccccc);

Color 1 Color 2 Color 3

difference(#ff6600, #ffffff);

Color 1 Color 2 Color 3

difference(#ff6600, #ff0000);

Color 1 Color 2 Color 3

difference(#ff6600, #00ff00);

Color 1 Color 2 Color 3

difference(#ff6600, #0000ff);

Color 1 Color 2 Color 3

exclusion

difference相似的效果。

参数:

  • color1: 作为被减数的颜色对象。
  • color2: 作为减数的颜色对象。

返回值: color

示例:

exclusion(#ff6600, #000000);

Color 1 Color 2 Color 3

exclusion(#ff6600, #333333);

Color 1 Color 2 Color 3

exclusion(#ff6600, #666666);

Color 1 Color 2 Color 3

exclusion(#ff6600, #999999);

Color 1 Color 2 Color 3

exclusion(#ff6600, #cccccc);

Color 1 Color 2 Color 3

exclusion(#ff6600, #ffffff);

Color 1 Color 2 Color 3

exclusion(#ff6600, #ff0000);

Color 1 Color 2 Color 3

exclusion(#ff6600, #00ff00);

Color 1 Color 2 Color 3

exclusion(#ff6600, #0000ff);

Color 1 Color 2 Color 3

average

按每个通道(RGB)计算两种颜色的平均值。

参数:

  • color1: 一个颜色对象。
  • color2: 一个颜色对象。

返回值: color

示例:

average(#ff6600, #000000);

Color 1 Color 2 Color 3

average(#ff6600, #333333);

Color 1 Color 2 Color 3

average(#ff6600, #666666);

Color 1 Color 2 Color 3

average(#ff6600, #999999);

Color 1 Color 2 Color 3

average(#ff6600, #cccccc);

Color 1 Color 2 Color 3

average(#ff6600, #ffffff);

Color 1 Color 2 Color 3

average(#ff6600, #ff0000);

Color 1 Color 2 Color 3

average(#ff6600, #00ff00);

Color 1 Color 2 Color 3

average(#ff6600, #0000ff);

Color 1 Color 2 Color 3

negation

difference相反的效果。

结果是更明亮的颜色。 注意opposite效果并不意味着由addition操作产生的inverted效果。

参数:

  • color1: A color object to act as the minuend.
  • color2: A color object to act as the subtrahend.

返回值: color

示例:

negation(#ff6600, #000000);

Color 1 Color 2 Color 3

negation(#ff6600, #333333);

Color 1 Color 2 Color 3

negation(#ff6600, #666666);

Color 1 Color 2 Color 3

negation(#ff6600, #999999);

Color 1 Color 2 Color 3

negation(#ff6600, #cccccc);

Color 1 Color 2 Color 3

negation(#ff6600, #ffffff);

Color 1 Color 2 Color 3

negation(#ff6600, #ff0000);

Color 1 Color 2 Color 3

negation(#ff6600, #00ff00);

Color 1 Color 2 Color 3

negation(#ff6600, #0000ff);

Color 1 Color 2 Color 3