本文轉自 http://www.cnblogs.com/zfc2201/p/3493335.html
escape(@string); // 通過 URL-encoding 編碼字元串
e(@string); // 對字元串轉義,與
~"value"
類似。
%(@string, values...); // 格式化字元串
unit(@dimension, [@unit: ""]); // 移除或替換屬性值的機關
color(@string); // 将字元串解析為顔色值
data-uri([mimetype,] url); // * 将資源内嵌到css中,可能回退到url()
ceil(@number); // 向上取整
floor(@number); // 向下取整
percentage(@number); // 将數字轉換為百分比,例如 0.5 -> 50%
round(number, [places: 0]); // 四舍五入取整
sqrt(number); // * 計算數字的平方根
abs(number); // * 數字的絕對值
sin(number); // * sin函數
asin(number); // * arcsin函數
cos(number); // * cos函數
acos(number); // * arccos函數
tan(number); // * tan函數
atan(number); // * arctan函數
pi(); // * 傳回PI
pow(@base, @exponent); // * 傳回@base的@exponent次方
mod(number, number); // * 第一個參數對第二個參數取餘
convert(number, units); // * 在數字之間轉換
unit(number, units); // * 不轉換的情況下替換數字的機關
color(string); // 将字元串或者轉義後的值轉換成顔色
rgb(@r, @g, @b); // 轉換為顔色值
rgba(@r, @g, @b, @a); // 轉換為顔色值
argb(@color); // 建立 #AARRGGBB 格式的顔色值
hsl(@hue, @saturation, @lightness); // 建立顔色值
hsla(@hue, @saturation, @lightness, @alpha); // 建立顔色值
hsv(@hue, @saturation, @value); // 建立顔色值
hsva(@hue, @saturation, @value, @alpha); // 建立顔色值
hue(@color); // 從顔色值中提取 hue 值(色相)
saturation(@color); // 從顔色值中提取 saturation 值(飽和度)
lightness(@color); // 從顔色值中提取 'lightness' 值(亮度)
hsvhue(@color); // * 從顔色中提取 hue 值,以HSV色彩空間表示(色相)
hsvsaturation(@color); // * 從顔色中提取 saturation 值,以HSV色彩空間表示(飽和度)
hsvvalue(@color); // * 從顔色中提取 value 值,以HSV色彩空間表示(色調)
red(@color); // 從顔色值中提取 'red' 值(紅色)
green(@color); // 從顔色值中提取 'green' 值(綠色)
blue(@color); // 從顔色值中提取 'blue' 值(藍色)
alpha(@color); // 從顔色值中提取 'alpha' 值(透明度)
luma(@color); // 從顔色值中提取 'luma' 值(亮度的百分比表示法)
saturate(@color, 10%); // 飽和度增加 10%
desaturate(@color, 10%); // 飽和度降低 10%
lighten(@color, 10%); // 亮度增加 10%
darken(@color, 10%); // 亮度降低 10%
fadein(@color, 10%); // 透明度增加 10%
fadeout(@color, 10%); // 透明度降低 10%
fade(@color, 50%); // 設定透明度為 50%
spin(@color, 10); // 色相值增加 10
mix(@color1, @color2, [@weight: 50%]); // 混合兩種顔色
greyscale(@color); // 完全移除飽和度,輸出灰色
contrast(@color1, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]); // 如果 @color1 的 luma 值 > 43% 輸出 @darkcolor,否則輸出 @lightcolor
multiply(@color1, @color2);
screen(@color1, @color2);
overlay(@color1, @color2);
softlight(@color1, @color2);
hardlight(@color1, @color2);
difference(@color1, @color2);
exclusion(@color1, @color2);
average(@color1, @color2);
negation(@color1, @color2);
iscolor(@colorOrAnything); // 判斷一個值是否是顔色
isnumber(@numberOrAnything); // 判斷一個值是否是數字(可含機關)
isstring(@stringOrAnything); // 判斷一個值是否是字元串
iskeyword(@keywordOrAnything); // 判斷一個值是否是關鍵字
isurl(@urlOrAnything); // 判斷一個值是否是url
ispixel(@pixelOrAnything); // 判斷一個值是否是以px為機關的數值
ispercentage(@percentageOrAnything); // 判斷一個值是否是百分數
isem(@emOrAnything); // 判斷一個值是否是以em為機關的數值
isunit(@numberOrAnything, "rem"); // * 判斷一個值是否是指定機關的數值
函數解析
字元串函數 (String functions)
escape
使用URL-encoding的方式編碼字元串。
以下字元不會被編碼:
,
/
/
?
@
&
+
'
~
!
$
。
最常見的被編碼的字元串包括:
#
^
(
)
{
}
|
:
>
<
;
]
[
=
參數:字元串,需要編碼的字元串
傳回值:字元串 (string)
例如:
-
escape('a=1')
輸出:
-
a%3D1
注意:如果參數不是字元串的話,函數行為是不可預知的。目前傳入顔色值的話會傳回 undefined
,其它的值會原樣傳回。寫代碼時不應該依賴這個特性,而且這個特性在未來有可能改變。
e
用于對CSS的轉義,與
~"value"
類似。它接受一個字元串作為參數,并原樣傳回内容(不含引号)。它可用于輸出一些不合法的CSS文法,或者是使用LESS不能識别的屬性。
參數:字元串,需要轉義的字元串
傳回值:字元串的内容,不含引号
-
filter:e("ms:alwaysHasItsOwnSyntax.For.Stuff()");
-
filter: ms:alwaysHasItsOwnSyntax.For.Stuff();
注意:也接受經 ~""
轉義的值或者是數字作為參數。其它的值将産生錯誤。
%
%("format", arguments ...)
将會格式化字元串。第一個參數是一個包含占位符的字元串。占位符以百分号
%
開頭,後面接字母
s
S
d
D
a
A
。後續的參數用于替換這些占位符。如果你需要輸出百分号,可以多用一個百分号來轉義
%%
使用大寫的占位符可以将特殊字元按照UTF-8進行轉義,函數将會對所有的特殊字元進行轉義,除了
(
)
'
/
~
!
。空格會被轉義為
%20
。小寫的占位符将原樣保持特殊字元,不進行轉義。
占位符說明:
d
D
a
A
可以被任意類型的參數替換(顔色、數字、轉義的字元串、表達式等)。如果将它們和字元串一起使用,則整個字元串都會被使用,包含引号。
但是,引号将會原樣放在字元串中,不會被轉義。
s
S
可以被除了顔色的之外的任何類型參數替換。如果你将它們和字元串一起使用,則隻有字元串的值會被使用,引号會被忽略。
參數:【1】字元串,帶有占位符的格式化字元串 【2】任意值,用于替換占位符的值
傳回值:格式化後的字元串
- 使用
/a
格式化:d
%("repetitions: %a file: %d", 1 + 2, "directory/file.less");
- 使用大寫的
a
d
%('repetitions: %A file: %D', 1 + 2, "directory/file.less");
-
s
%("repetitions: %s file: %s", 1 + 2, "directory/file.less");
- 使用大寫
s
%('repetitions: %S file: %S', 1 + 2, "directory/file.less");
分别輸出如下:
-
a
d
"repetitions: 3 file: "directory/file.less"";
-
a
d
"repetitions: 3 file: %22directory%2Ffile.less%22";
-
s
"repetitions: 3 file: directory/file.less";
-
s
"repetitions: 3 file: directory%2Ffile.less";
綜合類函數 (Misc functions)
color
解析顔色,将代表顔色的字元串轉換為顔色值,參數必須是16進制表示的顔色或者縮寫寫法。
參數:字元串,代表顔色值的字元串
-
color("#445566")
-
color(~"#123")
-
#445566
-
#112233
unit
移除或替換屬性值 (dimension) 的機關。
參數:【1】@dimension: 數字,帶或不帶機關 【2】@unit: 可選,将要替換成的機關,如果省略則移除原機關
-
unit(5, px)
-
5px
-
unit(5em)
-
5
data-uri
将一個資源使用BASE64編碼嵌入到樣式檔案,如果開啟了
ieCompat
選項,而且資源檔案的體積過大或者是在浏覽器中使用,則會使用
url()
進行回退。如果沒有指定MIME,則Node.js會使用MIME包來決定正确的MIME。
參數:【1】mimetype: MIME字元串,可選參數 【2】url: 需要内嵌的檔案的url
-
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==');
算數函數 (Math functions)
ceil
向上取整。
參數:數字,浮點數
傳回值:向上取整後的整數
- ceil(2.4)
-
3
floor
向下取整。
傳回值:向下取整後的整數
- floor(2.6)
-
2
percentage
将浮點數轉換為百分比字元串。
傳回值:字元串
-
percentage(0.5)
-
50%
round
四舍五入取整。
參數:【1】數字:浮點數 【2】小數位數,數字,可選,四舍五入取整的小數點位置,預設值為0。
傳回值:數字 (number)
-
round(1.67)
-
2
-
round(1.67, 1)
-
1.7
sqrt
計算一個數的平方根,原樣保持機關。
傳回值:數字,平方根
-
sqrt(25cm)
-
5cm
-
sqrt(18.6%)
-
4.312771730569565%;
abs
計算數字的絕對值,原樣保持機關。
傳回值:數字,絕對值
-
abs(25cm)
-
25cm
-
abs(-18.6%)
-
18.6%
sin
正弦函數,處理時會将沒有機關的數字認為是弧度值。
參數:【1】數字,浮點數,角度
傳回值:數字,角度對應的正弦值
-
sin(1); // 1弧度角的正弦值
-
sin(1deg); // 1角度角的正弦值
-
sin(1grad); // 1百分度角的正弦值
分别輸出:
-
0.8414709848078965;
-
0.01745240643728351;
-
0.015707317311820675;
百分度是将一個圓周分為400份,每份為一個百分度,英文gradian,簡寫grad。見http://zh.wikipedia.org/zh/%E7%99%BE%E5%88%86%E5%BA%A6。
asin
反正弦函數,傳回以弧度為機關的角度,區間在 -PI/2 到 PI/2之間。
參數:數字,浮點數,代表正弦值,範圍為 [-1,1]
傳回值:數字,角度
-
asin(-0.8414709848078965)
-
asin(0)
-
asin(2)
-
-1rad
-
0rad
-
NaNrad
有關反三角函數的知識可以參見http://zh.wikipedia.org/zh/%E5%8F%8D%E4%B8%89%E8%A7%92%E5%87%BD%E6%95%B0,下同。
cos
餘弦函數,處理時會将沒有機關的數字認為是弧度值。
參數:數字,浮點數,角度
傳回值:數字,角度對應的餘弦值
-
cos(1); // 1弧度角的餘弦值
-
cos(1deg); // 1角度角的餘弦值
-
cos(1grad); // 1百分度角的餘弦值
-
0.5403023058681398
-
0.9998476951563913
-
0.9998766324816606
acos
反餘弦函數,傳回以弧度為機關的角度,區間在 0 到 PI之間。
參數:數字,浮點數,代表餘弦值,範圍為 [-1,1]
-
acos(0.5403023058681398)
-
acos(1)
-
acos(2)
-
1rad
-
0rad
-
NaNrad
tan
正切函數,處理時會将沒有機關的數字認為是弧度值。
傳回值:數字,角度對應的正切值
-
sin(1); // 1弧度角的正切值
-
sin(1deg); // 1角度角的正切值
-
sin(1grad); // 1百分度角的正切值
-
1.5574077246549023
-
0.017455064928217585
-
0.015709255323664916
atan
反正切函數,傳回以弧度為機關的角度,區間在 -PI/2 到 PI/2之間。
參數:數字,浮點數,代表正切值
-
atan(-1.5574077246549023)
-
atan(0)
-
round(atan(22), 6) // 四舍五入輸出6位小數
-
-1rad
-
0rad
-
1.525373rad;
pi
傳回圓周率PI。
參數:無
傳回值:數字,圓周率
-
pi()
-
3.141592653589793
pow
假設第一個參數為A,第二個參數為B,傳回A的B次方。傳回值與A有相同的機關,B的機關被忽略。
參數:【1】數字,浮點數,基數 【2】數字,浮點數,冪指數
傳回值:數字,基數的冪指數次方
-
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
傳回第一個參數對第二參數取餘的結果。傳回值與第一個參數機關相同,第二個參數機關被忽略。這個函數也可以處理負數和浮點數。
參數:【1】數字,浮點數 【2】數字,浮點數
傳回值:數字,取餘的結果
-
mod(0cm, 0px)
-
mod(11cm, 6px);
-
mod(-26%, -5);
-
NaNcm;
-
5cm
-
-1%;
convert
将數字從一種類型轉換到另一種類型。第一個參數為帶機關的數值,第二個參數為機關。如果兩個參數的機關是相容的,則數字的機關被轉換。如果兩個參數的機關不相容,則原樣傳回第一個參數。
相容的機關組:
- 長度:
m
cm
mm
in
pt
pc
- 時間:
s
ms
- 角度:
rad
deg
grad
turn
grad為“百分度”,見正弦函數下的說明。turn為“圈/周”的意思,1turn為360度。
參數:【1】數字,帶機關的數值,浮點數 【2】機關
傳回值:轉換機關後的數值
-
convert(9s, "ms")
-
convert(14cm, mm)
-
convert(8, mm) // 不相容的機關
-
9000ms
-
140mm
-
8
傳回帶不同機關的數值。隻有機關被改變,數值本身不會被轉換。函數會假設第二個參數帶上了合法機關。
參數:【1】數字,帶機關的浮點數 【2】機關
傳回值:帶機關的數值
-
unit(9s, ~"ms")
-
unit(-9, m)
-
9ms
-
-9m
顔色函數 (Color functions)
rgb
通過十進制紅色,綠色,藍色三種值 (RGB) 建立不透明的顔色對象。在 HTML/CSS 中也會用文本顔色值 (literal color values) 定義顔色,例如
red -> #ff0000
參數:【1】@red,整數 0-255 或百分比 0-100% 【2】@green,整數 0-255 或百分比 0-100% 【3】@blue,整數 0-255 或百分比 0-100%
傳回值:顔色 (color)
-
rgb(90, 129, 32)
-
#5a8120
rgba
通過十進制紅色,綠色,藍色,以及 alpha 四種值 (RGBA) 建立帶alpha透明的顔色對象。
參數:【1】@red,整數 0-255 或百分比 0-100% 【2】@green,整數 0-255 或百分比 0-100% 【3】@blue: 整數 0-255 或百分比 0-100% 【4】@alpha: 數字 0-1 或百分比 0-100%
-
rgba(90, 129, 32, 0.5)
-
rgba(90, 129, 32, 0.5)
argb
建立格式為 #AARRGGBB 的十六進制 (hex representation) 顔色 (注意不是 #RRGGBBAA !)。這種格式被用在IE濾鏡中,以及.NET和Android開發中。
參數:@color,顔色對象 (A color object.)
-
argb(rgba(90, 23, 148, 0.5));
-
#805a1794
hsl
通過色相 (hue),飽和度 (saturation),亮度 (lightness) 三種值 (HSL) 建立不透明的顔色對象。
參數:【1】@hue: 整數 0-360 表示度數 【2】@saturation: 百分比 0-100% 或數字 0-1 【3】@lightness: 百分比 0-100% 或數字 0-1
-
hsl(90, 100%, 50%)
-
#80ff00
當你想使用一種顔色來建立另一種顔色時很友善,如:
@new: hsl(hue(@old), 45%, 90%);
@new 将使用 @old 的 色相值,以及它自己的飽和度與亮度。
hsla
通過色相 (hue),飽和度 (saturation),亮度 (lightness),以及 alpha 四種值 (HSLA) 建立透明的顔色對象。
參數:【1】@hue: 整數 0-360 表示度數 【2】@saturation: 百分比 0-100% 或數字 0-1 【3】@lightness: 百分比 0-100% 或數字 0-1 【4】@alpha: 百分比 0-100% 或數字 0-1
-
hsl(90, 100%, 50%, 0.5)
-
rgba(128, 255, 0, 0.5)
hsv
通過色相 (hue),飽和度 (saturation),色調 (value) 三種值 (HSV) 建立不透明的顔色對象。注意與 HSL 不同,這是另一種在Photoshop中可用的色彩空間。
參數:【1】@hue: 整數 0-360 表示度數 【2】@saturation: 百分比 0-100% 或數字 0-1 【3】@value: 百分比 0-100% 或數字 0-1
-
hsv(90, 100%, 50%)
-
#408000
hsva
通過色相 (hue),飽和度 (saturation),色調 (value),以及 alpha 四種值 (HSVA) 建立透明的顔色對象。注意與 HSLA 不同,這是另一種在Photoshop中可用的色彩空間。
參數:【1】@hue: 整數 0-360 表示度數 【2】@saturation: 百分比 0-100% 或數字 0-1 【3】@value: 百分比 0-100% 或數字 0-1 【4】@alpha: 百分比 0-100% 或數字 0-1
-
hsva(90, 100%, 50%, 0.5)
-
rgba(64, 128, 0, 0.5)
hue
從顔色對象中提取色相值。
傳回值:整數,範圍從0-360
- hue(hsl(90, 100%, 50%))
-
90
saturation
從顔色對象中提取飽和度值。
傳回值:百分比值 0-100
-
saturation(hsl(90, 100%, 50%))
-
100%
lightness
從顔色對象中提取亮度值。
-
lightness(hsl(90, 100%, 50%))
-
50%
hsvhue
以HSV色彩空間提取顔色中的色相值。
參數:顔色
傳回:整數,範圍為0-360
- hsvhue(hsv(90, 100%, 50%))
-
90
hsvsaturation
以HSV色彩空間提取顔色中的飽和度值。
傳回值:百分比,範圍0-100
-
hsvsaturation(hsv(90, 100%, 50%))
-
100%
hsvvalue
以HSV色彩空間提取顔色中的色調值。
傳回:百分比,範圍為0-100
-
hsvvalue(hsv(90, 100%, 50%))
-
50%
red
從顔色對象中提取紅色值。
傳回值:整數 0-255
-
red(rgb(10, 20, 30))
-
10
green
從顔色對象中提取綠色值。
-
green(rgb(10, 20, 30))
-
20
blue
從顔色對象中提取藍色值。
-
blue(rgb(10, 20, 30))
- 30
alpha
從顔色對象中提取 alpha 值。
傳回值:浮點數,介于 0-1 之間
-
alpha(rgba(10, 20, 30, 0.5))
-
0.5
luma
計算顔色對象的 luma 值(亮度的百分比表示法)。使用在WCAG2.0中定義的SMPTE C / Rec. 709 coefficients。 這個計算公式也用在
contrast()
函數中。
傳回值:百分比 0-100%
-
luma(rgb(100, 200, 30))
-
65%
顔色運算 (Color operations)
顔色值運算有幾點注意事項:參數必須機關/格式相同;百分比将作為絕對值處理,比如 10% 增加 10%,結果是 20% 而不是 11%;參數值隻能在限定的範圍内;they do not wrap around (這一句不清楚意思,可能是指參數值不會在超過範圍後自動從另一側“穿越”回去。)。傳回值時,除了十六進制的顔色值 (hex versions) 外将對其他格式做簡化處理。
saturate
增加一定數值的顔色飽和度。
參數:【1】@color,顔色對象 (A color object.) 【2】@amount,百分比 0-100%
- saturate(hsl(90, 90%, 50%), 10%)
- #80ff00 // hsl(90, 100%, 50%)
desaturate
降低一定數值的顔色飽和度。
-
desaturate(hsl(90, 90%, 50%), 10%)
-
#80e51a // hsl(90, 80%, 50%)
lighten
增加一定數值的顔色亮度。
-
lighten(hsl(90, 90%, 50%), 10%)
-
#99f53d // hsl(90, 90%, 60%)
darken
降低一定數值的顔色亮度。
-
darken(hsl(90, 90%, 50%), 10%)
-
#66c20a // hsl(90, 90%, 40%)
fadein
降低顔色的透明度(或增加不透明度),令其更不透明,對不透明的顔色無效。如果要增加顔色的透明度,使用
fadeout()
函數。
-
fadein(hsla(90, 90%, 50%, 0.5), 10%)
-
rgba(128, 242, 13, 0.6) // hsla(90, 90%, 50%, 0.6)
fadeout
增加顔色的透明度(或降低不透明度),令其更透明,對不透明的顔色無效。如果要增加顔色的透明度,使用 fadein() 函數。
-
fadeout(hsla(90, 90%, 50%, 0.5), 10%)
-
rgba(128, 242, 13, 0.4) // hsla(90, 90%, 50%, 0.6)
fade
給顔色(包括不透明的顔色)設定一定數值的透明度。
-
fade(hsl(90, 90%, 50%), 10%)
-
rgba(128, 242, 13, 0.1) //hsla(90, 90%, 50%, 0.1)
spin
向任意方向旋轉顔色的色相角度 (hue angle),旋轉範圍 0-360,超過一周後将從起點開始繼續旋轉(+ - 控制方向),比如旋轉 360 度與 720 度是相同的結果。
需要注意的是,顔色值會通過 RGB 格式轉換,這個過程不能保留灰色的色相值(灰色沒有飽和度,色相值也就沒有意義了),是以要确定使用函數的方法能夠保留顔色的色相值,例如不要這樣使用函數:
@c: saturate(spin(#aaaaaa, 10), 10%);
而應該用這種方法代替:
@c: spin(saturate(#aaaaaa, 10%), 10);
因為顔色值永遠輸出為 RGB 格式,是以
spin()
函數對灰色無效。
參數:【1】@color,顔色對象 (A color object.) 【2】@angle,任意數字表示角度 (+ 或 – 表示方向)
-
spin(hsl(10, 90%, 50%), 20)
-
spin(hsl(10, 90%, 50%), -20)
-
#f27f0d // hsl(30, 90%, 50%)
-
#f20d33 // hsl(350, 90%, 50%)
mix
根據比例混合兩種顔色,包括計算不透明度。
參數:【1】@color1,顔色對象 (A color object.) 【2】@color2,顔色對象 (A color object.) 【3】@weight,可選項,平衡兩種顔色的百分比,預設 50%。
-
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)
greyscale
完全移除顔色的飽和度,與
desaturate(@color, 100%)
函數效果相同。
因為顔色的飽和度不受色相值影響,是以輸出的顔色會稍顯暗淡 (dull or muddy);
如果使用
luma
值可能會有更好的結果,因為它提取的是百分比亮度,而不是線性亮度。
比如
greyscale('#0000ff')
與
greyscale('#00ff00')
會得出相同的結果,盡管對人眼來說,它們的亮度是不一樣的。
-
greyscale(hsl(90, 90%, 50%))
-
#808080 // hsl(90, 0%, 50%)
contrast
這個函數對比 @background 的 luma 值與 @threshold 參數的大小,如果大于輸出 @darkcolor, 小于則輸出 @lightcolor,便于選擇相對于背景更容易閱讀的顔色,同時提高了使用顔色的靈活性,與 Compass 的
contrast()
函數 工作方式相同。根據 WCAG 2.0 應該對比顔色的 luma 值,而不是亮度值 (lightness)。
參數:【1】@background,需要對比的顔色對象 (A color object to compare against.) 【2】@darkcolor,可選項 – 指定的黑色(預設 black) 【3】@lightcolor,可選項 – 指定的白色(預設 white) 【4】@threshold,可選項 – 百分比 0-100% 界定深色過渡到淺色的轉變位置(預設 43%),這個數值決定了輸出結果偏向于哪一方,比如判斷 50% 的灰色背景應該顯示白色還是黑色的文字。一般來說,如果本色方案偏淺,則應該設低一點,否則設高一點。
-
contrast(#aaaaaa)
-
contrast(#222222, #101010)
-
contrast(#222222, #101010, #dddddd)
-
contrast(hsl(90, 100%, 50%),#000000,#ffffff,40%);
-
contrast(hsl(90, 100%, 50%),#000000,#ffffff,60%);
-
#000000 // black
-
#ffffff // white
-
#dddddd
-
#000000 // black
-
#ffffff // white
顔色混合 (Color blending)
顔色混合的方式與圖像編輯器 Photoshop, Firework 或者 GIMP 的圖層混合模式 (layer blending modes) 相似,是以制作 .psd 檔案時處理顔色的方法可以同樣用在 CSS 中。
multiply
分别将兩種顔色的紅綠藍 (RGB) 三種值做乘法運算,然後再除以 255,輸出結果是更深的顔色。(譯注:對應Photoshop中的“變暗/正片疊底”。)
參數:【1】@color1,顔色對象 【2】@color2,顔色對象
screen
與 multiply() 函數效果相反,輸出結果是更亮的顔色。(譯注:對應Photoshop中的“變亮/濾色”。)
overlay
結合 multiply() 與 screen() 兩個函數的效果,令淺的顔色變得更淺,深的顔色變得更深。(譯注:對應Photoshop中的“疊加”。)注意:輸出結果由第一個顔色參數決定。
參數:【1】@color1,顔色對象,是用于疊加的顔色,也是結果是更亮還是更暗的決定因素 【2】@color2,顔色對象,被疊加的顔色
softlight
與 overlay() 函數效果相似,隻是當純黑色或純白色作為參數時輸出結果不會是純黑色或純白色。(譯注:對應Photoshop中的“柔光”。)
參數:【1】@color1,混合色(光源) 【2】@color2,被混合的顔色
hardlight
與 overlay() 函數效果相似,不過由第二個顔色參數決定輸出顔色的亮度或黑度,而不是第一個顔色參數決定。(譯注:對應Photoshop中的“強光/亮光/線性光/點光”。)
difference
從第一個顔色值中減去第二個(分别計算 RGB 三種顔色值),輸出結果是更深的顔色。(譯注:對應Photoshop中的“內插補點/排除”。)
參數:【1】@color1,被減的顔色對象 【2】@color2,減去的顔色對象
exclusion
效果與 difference() 函數效果相似,隻是輸出結果差别更小 (lower contrast)。(譯注:對應Photoshop中的“內插補點/排除”。)
average
分别對 RGB 的三種顔色值取平均值,然後輸出結果。
參數:【1】@color1,顔色對象 (A color object.) 【2】@color2,顔色對象 (A color object.)
negation
與
difference()
函數效果相反,輸出結果是更亮的顔色。請注意:效果相反不代表做加法運算。