hue
值(色相)saturation
值(飽和度)hue
值,以HSV色彩空間表示(色相)saturation
值,以HSV色彩空間表示(飽和度)value
值,以HSV色彩空間表示(色調)含*號的函數只在1.4.0 beta以上版本中可用css
使用URL-encoding的方式編碼字符串。瀏覽器
如下字符不會被編碼:,
/ /
/ ?
/ @
/ &
/ +
/ '
/ ~
/ !
/ $
。less
最多見的被編碼的字符串包括: /
#
/ ^
/ (
/ )
/ {
/ }
/ |
/ :
/ >
/ <
/ ;
/ ]
/ [
/ =
。編輯器
參數:函數
返回值:字符串 (string)編碼
例如:url
escape('a=1')
輸出:spa
a%3D1
注意:若是參數不是字符串的話,函數行爲是不可預知的。目前傳入顏色值的話會返回
undefined
,其它的值會原樣返回。寫代碼時不該該依賴這個特性,並且這個特性在將來有可能改變。3d
用於對CSS的轉義,與~"value"
相似。它接受一個字符串做爲參數,並原樣返回內容(不含引號)。它可用於輸出一些不合法的CSS語法,或者是使用LESS不能識別的屬性。code
參數:
返回值:字符串的內容,不含引號
例如:
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
能夠被除了顏色的以外的任何類型參數替換。若是你將它們和字符串一塊兒使用,則只有字符串的值會被使用,引號會被忽略。
參數:
返回值:格式化後的字符串
例如:
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";
解析顏色,將表明顏色的字符串轉換爲顏色值,參數必須是16進製表示的顏色或者縮寫寫法。
參數:
例如:
color("#445566") color(~"#123")
輸出:
#445566 #112233
移除或替換屬性值 (dimension) 的單位。
參數:
例如:
unit(5, px)
輸出:
5px
例如:
unit(5em)
輸出:
5
將一個資源使用BASE64編碼嵌入到樣式文件,若是開啓了ieCompat
選項,並且資源文件的體積過大或者是在瀏覽器中使用,則會使用url()
進行回退。若是沒有指定MIME,則Node.js會使用MIME包來決定正確的MIME。
參數:
例如:
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==');
向上取整。
參數:
返回值:向上取整後的整數
例如:
ceil(2.4)
輸出:
3
向下取整。
參數:
例如:
floor(2.6)
輸出:
2
將浮點數轉換爲百分比字符串。
參數:
返回值:字符串
例如:
percentage(0.5)
輸出:
50%
四捨五入取整。
參數:
返回值:數字 (number)
例如:
round(1.67)
輸出:
2
例如:
round(1.67, 1)
輸出:
1.7
計算一個數的平方根,原樣保持單位。
參數:
返回值:數字,平方根
例如:
sqrt(25cm)
輸出:
5cm
例如:
sqrt(18.6%)
輸出:
4.312771730569565%;
計算數字的絕對值,原樣保持單位。
參數:
返回值:數字,絕對值
例如:
abs(25cm)
輸出:
25cm
例如:
abs(-18.6%)
輸出:
18.6%
正弦函數,處理時會將沒有單位的數字認爲是弧度值。
參數:
例如:
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。
反正弦函數,返回以弧度爲單位的角度,區間在 -PI/2 到 PI/2之間。
參數:
例如:
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(1); // 1弧度角的餘弦值 cos(1deg); // 1角度角的餘弦值 cos(1grad); // 1百分度角的餘弦值
分別輸出:
0.5403023058681398 0.9998476951563913 0.9998766324816606
反餘弦函數,返回以弧度爲單位的角度,區間在 0 到 PI之間。
參數:
例如:
acos(0.5403023058681398) acos(1) acos(2)
分別輸出:
1rad 0rad NaNrad
正切函數,處理時會將沒有單位的數字認爲是弧度值。
參數:
例如:
sin(1); // 1弧度角的正切值 sin(1deg); // 1角度角的正切值 sin(1grad); // 1百分度角的正切值
分別輸出:
1.5574077246549023 0.017455064928217585 0.015709255323664916
反正切函數,返回以弧度爲單位的角度,區間在 -PI/2 到 PI/2之間。
參數:
例如:
atan(-1.5574077246549023) atan(0) round(atan(22), 6) // 四捨五入輸出6位小數
分別輸出:
-1rad 0rad 1.525373rad;
返回圓周率PI。
參數:無
返回值:數字,圓周率
例如:
pi()
輸出:
3.141592653589793
假設第一個參數爲A,第二個參數爲B,返回A的B次方。返回值與A有相同的單位,B的單位被忽略。
參數:
返回值:數字,基數的冪指數次方
例如:
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(0cm, 0px) mod(11cm, 6px); mod(-26%, -5);
輸出:
NaNcm; 5cm -1%;
將數字從一種類型轉換到另外一種類型。第一個參數爲帶單位的數值,第二個參數爲單位。若是兩個參數的單位是兼容的,則數字的單位被轉換。若是兩個參數的單位不兼容,則原樣返回第一個參數。
兼容的單位組:
m
/ cm
/ mm
/ in
/ pt
/ pc
s
/ ms
rad
/ deg
/ grad
/ turn
grad爲「百分度」,見正弦函數下的說明。turn爲「圈/周」的意思,1turn爲360度。
參數:
返回值:轉換單位後的數值
例如:
convert(9s, "ms") convert(14cm, mm) convert(8, mm) // 不兼容的單位
輸出:
9000ms 140mm 8
返回帶不一樣單位的數值。只有單位被改變,數值自己不會被轉換。函數會假設第二個參數帶上了合法單位。
參數:
返回值:帶單位的數值
例如:
unit(9s, ~"ms") unit(-9, m)
輸出:
9ms -9m
見「綜合函數」部分
經過十進制紅色,綠色,藍色三種值 (RGB) 建立不透明的顏色對象。在 HTML/CSS 中也會用文本顏色值 (literal color values) 定義顏色,例如 red -> #ff0000
。
參數:
返回值:顏色 (color)
例如:
rgb(90, 129, 32)
輸出:
#5a8120
經過十進制紅色,綠色,藍色,以及 alpha 四種值 (RGBA) 建立帶alpha透明的顏色對象。
參數:
返回值:顏色 (color)
例如:
rgba(90, 129, 32, 0.5)
輸出:
rgba(90, 129, 32, 0.5)
建立格式爲 #AARRGGBB 的十六進制 (hex representation) 顏色 (注意不是 #RRGGBBAA !)。這種格式被用在IE濾鏡中,以及.NET和Android開發中。
參數:
返回值:字符串 (string)
例如:
argb(rgba(90, 23, 148, 0.5));
輸出:
#805a1794
經過色相 (hue),飽和度 (saturation),亮度 (lightness) 三種值 (HSL) 建立不透明的顏色對象。
參數:
返回值:顏色 (color)
例如:
hsl(90, 100%, 50%)
輸出:
#80ff00
當你想使用一種顏色來建立另外一種顏色時很方便,如:
@new: hsl(hue(@old), 45%, 90%);
@new 將使用 @old 的 色相值,以及它本身的飽和度與亮度。
經過色相 (hue),飽和度 (saturation),亮度 (lightness),以及 alpha 四種值 (HSLA) 建立透明的顏色對象。
參數:
返回值:顏色 (color)
例如:
hsl(90, 100%, 50%, 0.5)
輸出:
rgba(128, 255, 0, 0.5)
經過色相 (hue),飽和度 (saturation),色調 (value) 三種值 (HSV) 建立不透明的顏色對象。注意與 HSL 不一樣,這是另外一種在Photoshop中可用的色彩空間。
參數:
返回值:顏色 (color)
例如:
hsv(90, 100%, 50%)
輸出:
#408000
經過色相 (hue),飽和度 (saturation),色調 (value),以及 alpha 四種值 (HSVA) 建立透明的顏色對象。注意與 HSLA 不一樣,這是另外一種在Photoshop中可用的色彩空間。
參數:
返回值:顏色 (color)
例如:
hsva(90, 100%, 50%, 0.5)
輸出:
rgba(64, 128, 0, 0.5)
從顏色對象中提取色相值。
參數:
返回值:整數,範圍從0-360
例如:
hue(hsl(90, 100%, 50%))
輸出:
90
從顏色對象中提取飽和度值。
參數:
返回值:百分比值 0-100
例如:
saturation(hsl(90, 100%, 50%))
輸出:
100%
從顏色對象中提取亮度值。
參數:
返回值:百分比值 0-100
例如:
lightness(hsl(90, 100%, 50%))
輸出:
50%
以HSV色彩空間提取顏色中的色相值。
參數:
返回:整數,範圍爲0-360
例如:
hsvhue(hsv(90, 100%, 50%))
輸出:
90
以HSV色彩空間提取顏色中的飽和度值。
參數:
返回值:百分比,範圍0-100
例如:
hsvsaturation(hsv(90, 100%, 50%))
輸出:
100%
以HSV色彩空間提取顏色中的色調值。
參數:
返回:百分比,範圍爲0-100
例如:
hsvvalue(hsv(90, 100%, 50%))
輸出:
50%
從顏色對象中提取紅色值。
參數:
返回值:整數 0-255
例如:
red(rgb(10, 20, 30))
輸出:
10
從顏色對象中提取綠色值。
參數:
返回值:整數 0-255
例如:
green(rgb(10, 20, 30))
輸出:
20
從顏色對象中提取藍色值。
參數:
返回值:整數 0-255
例如:
blue(rgb(10, 20, 30))
輸出:
30
從顏色對象中提取 alpha 值。
參數:
返回值:浮點數,介於 0-1 之間
例如:
alpha(rgba(10, 20, 30, 0.5))
輸出:
0.5
計算顏色對象的 luma 值(亮度的百分比表示法)。使用在WCAG2.0中定義的SMPTE C / Rec. 709 coefficients。 這個計算公式也用在 contrast()
函數中。
參數:
返回值:百分比 0-100%
例如:
luma(rgb(100, 200, 30))
輸出:
65%
顏色值運算有幾點注意事項:參數必須單位/格式相同;百分比將做爲絕對值處理,好比 10% 增長 10%,結果是 20% 而不是 11%;參數值只能在限定的範圍內;they do not wrap around (這一句不清楚意思,多是指參數值不會在超過範圍後自動從另外一側「穿越」回去。)。返回值時,除了十六進制的顏色值 (hex versions) 外將對其餘格式作簡化處理。
增長必定數值的顏色飽和度。
參數:
返回值:顏色 (color)
例如:
saturate(hsl(90, 90%, 50%), 10%)
輸出:
#80ff00 // hsl(90, 100%, 50%)
下降必定數值的顏色飽和度。
參數:
返回值:顏色 (color)
例如:
desaturate(hsl(90, 90%, 50%), 10%)
輸出:
#80e51a // hsl(90, 80%, 50%)
增長必定數值的顏色亮度。
參數:
返回值:顏色 (color)
例如:
lighten(hsl(90, 90%, 50%), 10%)
輸出:
#99f53d // hsl(90, 90%, 60%)
下降必定數值的顏色亮度。
參數:
返回值:顏色 (color)
例如:
darken(hsl(90, 90%, 50%), 10%)
輸出:
#66c20a // hsl(90, 90%, 40%)
下降顏色的透明度(或增長不透明度),令其更不透明,對不透明的顏色無效。若是要增長顏色的透明度,使用 fadeout()
函數。
參數:
返回值:顏色 (color)
例如:
fadein(hsla(90, 90%, 50%, 0.5), 10%)
輸出:
rgba(128, 242, 13, 0.6) // hsla(90, 90%, 50%, 0.6)
增長顏色的透明度(或下降不透明度),令其更透明,對不透明的顏色無效。若是要增長顏色的透明度,使用 fadein() 函數。
參數:
返回值:顏色 (color)
例如:
fadeout(hsla(90, 90%, 50%, 0.5), 10%)
輸出:
rgba(128, 242, 13, 0.4) // hsla(90, 90%, 50%, 0.6)
給顏色(包括不透明的顏色)設定必定數值的透明度。
參數:
返回值:顏色 (color)
例如:
fade(hsl(90, 90%, 50%), 10%)
輸出:
rgba(128, 242, 13, 0.1) //hsla(90, 90%, 50%, 0.1)
向任意方向旋轉顏色的色相角度 (hue angle),旋轉範圍 0-360,超過一週後將從起點開始繼續旋轉(+ - 控制方向),好比旋轉 360 度與 720 度是相同的結果。須要注意的是,顏色值會經過 RGB 格式轉換,這個過程不能保留灰色的色相值(灰色沒有飽和度,色相值也就沒有意義了),所以要肯定使用函數的方法可以保留顏色的色相值,例如不要這樣使用函數:
@c: saturate(spin(#aaaaaa, 10), 10%);
而應該用這種方法代替:
@c: spin(saturate(#aaaaaa, 10%), 10);
由於顏色值永遠輸出爲 RGB 格式,所以 spin()
函數對灰色無效。
參數:
返回值:顏色 (color)
例如:
spin(hsl(10, 90%, 50%), 20) spin(hsl(10, 90%, 50%), -20)
輸出:
#f27f0d // hsl(30, 90%, 50%) #f20d33 // hsl(350, 90%, 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)
徹底移除顏色的飽和度,與 desaturate(@color, 100%)
函數效果相同。由於顏色的飽和度不受色相值影響,因此輸出的顏色會稍顯暗淡 (dull or muddy);若是使用luma
值可能會有更好的結果,由於它提取的是百分比亮度,而不是線性亮度。好比greyscale('#0000ff')
與greyscale('#00ff00')
會得出相同的結果,儘管對人眼來講,它們的亮度是不同的。
參數:
返回值:顏色 (color)
例如:
greyscale(hsl(90, 90%, 50%))
輸出:
#808080 // hsl(90, 0%, 50%)
這個函數對比 @background 的 luma 值與 @threshold 參數的大小,若是大於輸出 @darkcolor, 小於則輸出 @lightcolor,便於選擇相對於背景更容易閱讀的顏色,同時提升了使用顏色的靈活性,與 Compass 的contrast()
函數 工做方式相同。根據 WCAG 2.0 應該對比顏色的 luma 值,而不是亮度值 (lightness)。
參數:
返回值:顏色 (color)
例如:
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
顏色混合的方式與圖像編輯器 Photoshop, Firework 或者 GIMP 的圖層混合模式 (layer blending modes) 類似,所以製做 .psd 文件時處理顏色的方法能夠一樣用在 CSS 中。
分別將兩種顏色的紅綠藍 (RGB) 三種值作乘法運算,而後再除以 255,輸出結果是更深的顏色。(譯註:對應Photoshop中的「變暗/正片疊底」。)
參數:
返回值:顏色 (color)
與 multiply() 函數效果相反,輸出結果是更亮的顏色。(譯註:對應Photoshop中的「變亮/濾色」。)
參數:
返回值:顏色 (color)
結合 multiply() 與 screen() 兩個函數的效果,令淺的顏色變得更淺,深的顏色變得更深。(譯註:對應Photoshop中的「疊加」。)注意:輸出結果由第一個顏色參數決定。
參數:
返回值:顏色 (color)
與 overlay() 函數效果類似,只是當純黑色或純白色做爲參數時輸出結果不會是純黑色或純白色。(譯註:對應Photoshop中的「柔光」。)
參數:
返回值:顏色 (color)
與 overlay() 函數效果類似,不過由第二個顏色參數決定輸出顏色的亮度或黑度,而不是第一個顏色參數決定。(譯註:對應Photoshop中的「強光/亮光/線性光/點光」。)
參數:
返回值:顏色 (color)
從第一個顏色值中減去第二個(分別計算 RGB 三種顏色值),輸出結果是更深的顏色。(譯註:對應Photoshop中的「差值/排除」。)
參數:
返回值:顏色 (color)
效果與 difference() 函數效果類似,只是輸出結果差異更小 (lower contrast)。(譯註:對應Photoshop中的「差值/排除」。)
參數:
分別對 RGB 的三種顏色值取平均值,而後輸出結果。
參數:
返回值:顏色 (color)
與 difference()
函數效果相反,輸出結果是更亮的顏色。請注意:效果相反不表明作加法運算。
參數:
返回值:顏色 (color)