less的配置安裝及語法使用

[目錄]

  • Less為什么會(huì)出現(xiàn)诉字?
  • 學(xué)習(xí)Less的網(wǎng)站
  • Less的安裝環(huán)境
    • 離線的安裝方式
    • 在線的安裝方式
  • less轉(zhuǎn)化成css
  • 第一步 新建一個(gè)less文件
  • 第二步 cmd解析編譯成css
    • GUI編譯工具
    • node.js
    • 使用clean-css 插件
    • 瀏覽器端不經(jīng)編譯直接使用
  • Webstorm中l(wèi)ess的使用
  • 如何讓less文件直接編譯成css文件
  • 如何在Webstorm中配置less文件的模板
  • Less語法
  • 注釋
  • 變量(規(guī)則黄选、使用)
  • Minxin混入
    • 類名混入
    • 函數(shù)混入
    • 帶參數(shù)的函數(shù)混入
  • 嵌套
  • Import(引用)
  • 函數(shù)(內(nèi)置函數(shù)和運(yùn)算)
    • less中定義函數(shù)
    • 內(nèi)置函數(shù)
      • 字符串函數(shù)
      • 綜合類函數(shù)
      • 算數(shù)函數(shù)
      • 顏色函數(shù)
      • 判斷函數(shù)
  • Bootstrap中l(wèi)ess的定制
  • 了解Bootstrap中l(wèi)ess模塊機(jī)制
  • 如何定制Bootstrap
    • 線下定制
    • 線上定制
  • 版本的更新說明

Less為什么會(huì)出現(xiàn)?

css(層疊樣式表)是一門標(biāo)記性語言橘洞,html和css不是編程語言捌袜,沒有變量,函數(shù)炸枣,作用域等概念虏等。語法簡單,但是看起來非常的繁瑣沒有邏輯适肠,而且很多的樣式都大量的冗余霍衫。
很多后臺(tái)的人員寫出來的css代碼,沒有規(guī)范就非常的凌亂侯养。不方便維護(hù)和擴(kuò)展敦跌。
Less、Sass和Stylus是css的預(yù)編譯語言逛揩,是一種編程語言柠傍,是后臺(tái)人員開發(fā)出來的,是在css的語法基礎(chǔ)之上辩稽,引入了變量惧笛,Mixin,運(yùn)算以及函數(shù)等功能逞泄,降低了維護(hù)成本患整。
以后綴名為.less的稱之為less文件
less可以在多種語言静檬、環(huán)境中使用,瀏覽器端并级、桌面客戶端拂檩、服務(wù)端。

學(xué)習(xí)Less的網(wǎng)站

Less官網(wǎng)(英文)
這個(gè)英文官網(wǎng)是一個(gè)響應(yīng)式站點(diǎn)
Less中文網(wǎng)
上面的英文網(wǎng)站是一個(gè)響應(yīng)式站點(diǎn)的網(wǎng)站嘲碧,下面是一個(gè)原封不動(dòng)照搬的一個(gè)中文網(wǎng)站稻励,但是我們學(xué)習(xí)的時(shí)候,還是要看下面的這個(gè)網(wǎng)站進(jìn)行學(xué)習(xí)
LESSCSS

Less的環(huán)境安裝

如何證明你的機(jī)子上有沒有安裝less愈涩?
要安裝less首先要安裝nodejs

win+R --> cmd --> node -v(如果安裝了node就會(huì)顯示版本號(hào)) -->npm -v(檢測一下npm是否自帶望抽,如果有會(huì)顯示版本號(hào)) --> lessc -v(如果安裝了less也會(huì)顯示版本號(hào))

lessc.png

離線的安裝方式

C: --> 用戶/user --> 打開自己的用戶 -->AppData(因?yàn)樗请[藏文件,所以要先顯示隱藏文件)-->Roaming --> npm -->如果已經(jīng)安裝了less就會(huì)有兩個(gè)文件(less和less.cmd)履婉、如果沒有東西就把npm.zip進(jìn)行復(fù)制煤篙,如圖:

file.png

在線的安裝方式

打開npm --> npm install -g less --> 回車

install.png

好,這樣就安裝好less了

less轉(zhuǎn)化成css

less是沒有辦法直接使用在瀏覽器上面的毁腿,只有css才能直接使用到瀏覽器的上面辑奈。所以我們要把less轉(zhuǎn)化成css。

第一步 新建一個(gè)less文件

先新建一個(gè)less文件已烤,保存到桌面

@color:red;
a{
    color:@color;
}

第二步 cmd解析編譯成css

GUI編譯工具

初學(xué)者建議使用GUI編譯工具來編譯less文件鸠窗,下面是推薦的幾個(gè)編譯工具

node.js

安裝了node之后就可以直接用node.js來編譯了。
在桌面目錄中打開cmd裕循,然后執(zhí)行命令dir(獲取當(dāng)前目錄的所有文件) --> 在當(dāng)前目錄上面寫lessc less.less less.css命令

less.png

就可以看到在桌面上同時(shí)生成了一個(gè)less.css的文件
打開之后里面的內(nèi)容是:

a{
    color:red;
}

這樣就可以在瀏覽器中使用了臣嚣。
(在編譯的過程中,同時(shí)會(huì)進(jìn)行檢查剥哑,如果有錯(cuò)就會(huì)報(bào)錯(cuò))

使用clean-css 插件

安裝了這個(gè)插件之后硅则,輸出的時(shí)候就可以轉(zhuǎn)化成壓縮過的css

$ lessc --clean-css styles.less styles.min.css

瀏覽器端不經(jīng)編譯直接使用

  • 下載LESSCSS的.js文件,例如lesscss-1.4.0.min.js
  • 在頁面中引入.less文件
<link rel="stylesheet/less" href="example.less" />
注意這里rel里面的值是stylesheet/less星持,不是stylesheet
  • 引入js文件
<script src="lesscss-1.4.0.min.js"></script>

特別注意:這里瀏覽器使用的是ajax來拉取.less文件抢埋,所以如果文件是file://開頭和跨域的情況弹灭,就無法拉取less文件督暂,還有就是部分服務(wù)器(IIS居多)會(huì)對(duì)未知的后綴名的文件返回404,解決方案就是為.less文件配置MIME值為text/css穷吮,或者直接將.less文件改名為.css文件即可

Webstorm 中的less的使用

如何讓less文件直接編譯成css文件

每次要修改less逻翁,都要修改編譯一下less,比較麻煩捡鱼。所以在webstorm中進(jìn)行自動(dòng)化編譯八回。
打開webstorm --> 新建一個(gè)less文件夾 --> 新建一個(gè)文件File --> 名稱是test.less --> 此時(shí)在屏幕上會(huì)出現(xiàn)一句話

less1.png

這句話的意思是,要不要監(jiān)聽less,讓其自動(dòng)化編譯生成css文件缠诅,點(diǎn)擊Add watcher溶浴,會(huì)彈出一個(gè)對(duì)話框:

lesswatch.png

這個(gè)對(duì)話框中的東西我們只關(guān)心畫框的部分就可以了,這個(gè)地址是我們剛才進(jìn)行離線安裝的地址管引,如果是空的的話就把地址進(jìn)行手動(dòng)的復(fù)制士败。點(diǎn)擊ok就可以自動(dòng)的進(jìn)行編譯了。
在less中寫語法之后褥伴,可以看到右邊的目錄中谅将,less文件有一個(gè)箭頭,點(diǎn)開其目錄下自動(dòng)生成了一個(gè)css文件重慢。

那如果沒有出現(xiàn)Add watcher那句話饥臂,怎么配置?
文件 --> 設(shè)置 --> 工具 --> File Watchers --> 點(diǎn)擊最右邊攔的 "+" 號(hào) --> 有一個(gè)less --> 也會(huì)彈出剛才的對(duì)話框 --> 配置完點(diǎn)擊確定就可以了似踱。

如何在Webstorm中配置less文件的模板

在文件夾中新建 --> 新建 --> 編輯文件模板 --> 點(diǎn)擊上面的 "+" 號(hào) --> 名稱 less file / 擴(kuò)展(后綴名) less --> 內(nèi)容寫 @charset "utf-8"; --> 確定
這樣就在新建的文件中配置好了less的文件隅熙。

Less語法

注釋

/*這個(gè)注釋可以在css中使用,也可以在less中使用*/
// 這個(gè)注釋可以在less中使用核芽,但是因?yàn)閏ss不支持猛们,所以這種類型的注釋是沒有辦法編譯到css文件中的

變量(variable)

變量允許我們定義一系列通用的樣式,在需要的時(shí)候去調(diào)用狞洋,這樣在修改的時(shí)候只需要修改全局的變量就可以了弯淘,十分的方便。

規(guī)則:

less 變量以@作為前綴吉懊,不能以數(shù)字開頭庐橙, 不能包含特殊字符。

使用:

/*定義了一個(gè)變量*/
@mainColor:#ff4400;

a:hover{
    color:@mainColor;
}

p{
    border: 1px solid @mainColor;
}

/*也可以進(jìn)行變量的拼接*/
@left:left;
/*拼接使用的時(shí)候要大括號(hào)包住*/
border-@{left}: 1px solid @mainColor;

Mixin混入

什么是混入借嗽,這個(gè)是在bootstrap中經(jīng)程睿看到的一個(gè)東西《竦迹混入可以將定義好的class A輕松的引入到class B中浆竭,從而簡單實(shí)現(xiàn)class B繼承所有class A的屬性。
定義的時(shí)候前面要加點(diǎn)惨寿。

類名混入

假如我定義了一個(gè)按鈕1邦泄,按鈕中有一些屬性,我在別的地方又有一個(gè)按鈕2裂垦,要加上這個(gè)按鈕1的屬性顺囊,和一些別的屬性,如果按照css的方式我要重新寫一遍蕉拢,那我就需要進(jìn)行混入了特碳。
來上代碼:

/*原來的按鈕的一些屬性和別的屬性*/
.btn{
    width:200px;
    height: 50px;
    background: #fff;
}

.btn_border{
    border: 1px solid #ccc;
}

.btn_danger{
    background: red;
}

.btn_block{
    display: block;
    width: 100%;
}

/*對(duì)css類的樣式進(jìn)行混入*/
.btn_b_d_b{
    .btn();
    .btn_border();
    .btn_danger();
    .btn_block();
}

函數(shù)混入

上面的東西有一些不好的地方全蝶,就是雖然我寫的時(shí)候比較簡潔了霉翔,但是編譯的時(shí)候還是全部都編譯進(jìn)去了。這個(gè)時(shí)候可以混入函數(shù)。(具體的函數(shù)知識(shí)在后面寫的)

.btn(){
    width:200px;
    height:200px;
    background: #fff;
}

.btn_border(){
    border:1px solid #ccc;
}

.btn_b{
    .btn();
    .btn_border();
}

這樣這里面的.btn和.btn_border都不會(huì)顯示到css文件之中去函喉,可以降低css中的代碼冗余青责。但是如果我要對(duì)樣式的具體值進(jìn)行改變呢禁偎,就涉及到參數(shù)了

帶參數(shù)的函數(shù)混入

注意:在定義參數(shù)要傳入默認(rèn)值杀怠,如果沒有默認(rèn)值,調(diào)用的時(shí)候必須要傳入值

/*less這樣會(huì)報(bào)錯(cuò)*/
.btn_border(@len){
    border:1px solid #ccc;
}

.btn_b{
    .btn();
    .btn_border();
}

/*兩種解決方案*/
/*1.在定義的時(shí)候傳入默認(rèn)值*/
.btn_border(@len:10px){
    border:1px solid #ccc;
    border-radius:@len;
}

.btn_b{
    .btn();
    .btn_border();
}

/*如果是上面的寫法腕唧,最終的border-radius是10px*/
.btn_b{
    .btn();
    .btn_border(20px);
}
/*如果調(diào)用的時(shí)候傳入?yún)?shù)了或辖,最終是20px*/
/*2.定義的時(shí)候沒有默認(rèn)值,在調(diào)用的時(shí)候傳入值*/
.btn_border(@len){
    border:1px solid #ccc;
    border-radius:@len;
    -webkit-border-radius:@len;
    -moz-border-radius:@len;
    -ms-border-radius:@len;
    -o-border-radius:@len;
}

.btn_b{
    .btn();
    .btn_border(10px);
}

嵌套

嵌套可以增強(qiáng)代碼的層級(jí)關(guān)系枣接,我們也可以通過嵌套來實(shí)現(xiàn)繼承颂暇,這樣很大程度減少了代碼量,代碼量看起來更加清晰但惶。

.nav{
    border-bottom: 1px solid #ccc;
    font-size: 12px;
    color:#666;
    a {
        color:#666;
    }
    > .container{
        line-height: 40px;
        text-align: center;
        > div{
        height:40px;
            ~ div{
            border-left:1px solid #ccc;
            }
        }
    }
}

這個(gè)時(shí)候要注意一個(gè)問題耳鸯,就是如果在寫偽元素、交集選擇器的時(shí)候膀曾,就會(huì)出現(xiàn)問題县爬,直接寫嵌套中間會(huì)默認(rèn)的加上空格。那么如何拼接上去呢添谊?

/*下面就是如何書寫偽元素和交集選擇器的寫法财喳,前面要加&*/
.nav{
      font-size:12px;
      &:hover{
            text-decoration:none;
      }
      &::before{
            content:"";
      }
}

Import(引用)

用less寫文件的時(shí)候,可以一個(gè)模塊寫一個(gè)less斩狱,但是index里面都要引用耳高,引用那么多個(gè)less文件就不合適了,這個(gè)時(shí)候就要建立一個(gè)總的less所踊,這是有一種解耦的開發(fā)思想泌枪,"高內(nèi)聚,低耦合"秕岛。
下面來梳理一下結(jié)構(gòu):
<less里面所需要的模塊>

  • 變量
  • 函數(shù)
  • 功能模塊(視自己的情況而定)
  • 總(引用變量碌燕、函數(shù)、功能模塊)

如何引入继薛?

@import "variable.less";      /*引入變量修壕,后面可以加后綴*/
@import "mixin";              /*引入函數(shù)*/
@import "topBar";             /*引入功能模塊1*/
@import  "navBar";            /*引入功能模塊2*/

函數(shù)(內(nèi)置函數(shù)和運(yùn)算)

js中有兩種定義函數(shù)的方式

1.function fun(){ }
2.var fun = function(){ }

less中定義函數(shù)

a{
    color:red/2;     /*結(jié)果是#800000*/
}

li{
    width:100%/7;  /*每個(gè)li標(biāo)簽的寬度都是ul的1/7 */
}

.a(@len:12){
    width:100%/@len;
    color:lighten(#ddd,10%);   /*亮度提高10%,結(jié)果是#f7f7f7*/
}

col-xs-1{
    .a();
}

內(nèi)置函數(shù)

具體的有函數(shù)手冊(cè)

函數(shù)手冊(cè)

字符串函數(shù)
  • escape(@string); // 通過 URL-encoding 編碼字符串
  • e(@string); // 對(duì)字符串轉(zhuǎn)義
  • %(@string, values...); // 格式化字符串
綜合類函數(shù)
  • unit(@dimension, [@unit: ""]); // 移除或替換屬性值的單位
  • color(@string); // 將字符串解析為顏色值
  • data-uri([mimetype,] url); // * 將資源內(nèi)嵌到css中惋增,可能回退到url()
算數(shù)函數(shù)
  • ceil(@number); // 向上取整
  • floor(@number); // 向下取整
  • percentage(@number); // 將數(shù)字轉(zhuǎn)換為百分比叠殷,例如 0.5 -> 50%
  • round(number, [places: 0]); // 四舍五入取整(第二位是精度)
  • sqrt(number); // * 計(jì)算數(shù)字的平方根(參數(shù)可以帶單位)
  • abs(number); // * 數(shù)字的絕對(duì)值(參數(shù)可以帶單位)
  • sin(number); // * sin函數(shù)(沒有單位默認(rèn)弧度值)
sin(1deg);   //1角度角的正弦值   0.01745240643728351
sin(1grad);  //1百分度角的正弦值   0.015707317311820675
/*百分度是將一個(gè)圓周分為400份改鲫,每份為一個(gè)百分度诈皿,英文gradian林束,簡寫grad*/
  • asin(number); // * arcsin函數(shù)
    • 參數(shù)-1到1之間的浮點(diǎn)數(shù),返回值弧度為單位稽亏,區(qū)間在-PI/2 到 PI/2 之間壶冒,超出范圍輸出NaNrad
  • cos(number); // * cos函數(shù)
    • 與sin函數(shù)一樣
  • acos(number); // * arccos函數(shù)
    • 參數(shù)-1到1之間的浮點(diǎn)數(shù),返回值弧度為單位截歉,區(qū)間在 0 在 PI 之間胖腾,超出范圍輸出NaNrad
  • tan(number); // * tan函數(shù)
    • 與sin函數(shù)一樣
  • atan(number); // * arctan函數(shù)
    • 返回值區(qū)間在 -PI/2 到 PI/2 之間,其余和asin一樣
  • pi(); // * 返回PI
  • pow(@base, @exponent); // * 返回@base的@exponent次方
    • 返回值和@base有相同的單位瘪松,第二個(gè)單位忽略咸作,不符合規(guī)則返回NaN
  • mod(number, number); // * 第一個(gè)參數(shù)對(duì)第二個(gè)參數(shù)取余
    • 返回值與第一個(gè)參數(shù)單位相同,可以處理負(fù)數(shù)和浮點(diǎn)數(shù)
  • convert(number, units); // * 在數(shù)字之間轉(zhuǎn)換
  • unit(number, units); // * 不轉(zhuǎn)換的情況下替換數(shù)字的單位
顏色函數(shù)
  • color(string); // 將字符串或者轉(zhuǎn)義后的值轉(zhuǎn)換成顏色
    • 見綜合函數(shù)
  • rgb(@r, @g, @b); // 轉(zhuǎn)換為顏色值
    • 參數(shù)是整數(shù)0-255宵睦,百分比0-100%记罚,轉(zhuǎn)化為十六進(jìn)制
  • rgba(@r, @g, @b, @a); // 轉(zhuǎn)換為顏色值
    • 參數(shù)前三個(gè)是整數(shù)0-255,百分比0-100%壳嚎,第四個(gè)是0-1或者百分比0-100%桐智,
  • argb(@color); // 創(chuàng)建 #AARRGGBB 格式的顏色值
    • 使用在IE濾鏡中,以及.NET和Android開發(fā)中
  • hsl(@hue, @saturation, @lightness); // 創(chuàng)建顏色值
    • 通過色相烟馅、飽和度说庭、亮度三種值
    • @hue : 整數(shù)0-360 表示度數(shù)
    • @saturation : 百分比0-100% 或者數(shù)字 0 - 1
    • @lightness: 百分比0-100% 或者數(shù)字0 - 1
    • 返回值十六進(jìn)制的顏色值
/*如果想使用一種顏色來創(chuàng)建另一種顏色的時(shí)候就很方便*/
@new: hsl(hue(@old),45%,90%);

/*這里@new 將使用@old 的色相值,以及它自己的飽和度和亮度*/
  • hsla(@hue, @saturation, @lightness, @alpha); // 創(chuàng)建顏色值
  • hsv(@hue, @saturation, @value); // 創(chuàng)建顏色值
    • @hue 表示色相 郑趁, 整數(shù)0-360表示度數(shù)
    • @saturation 表示飽和度刊驴,百分比0-100% 或數(shù)字0-1
    • @value 表示色調(diào),百分比0-100% 或數(shù)字0-1
    • 創(chuàng)建不透明的顏色對(duì)象
hsv(90,100%,50%)

輸出#408000
  • hsva(@hue, @saturation, @value, @alpha); // 創(chuàng)建顏色值
  • hue(@color); // 從顏色值中提取 hue 值(色相)
    • 返回值0-360的整數(shù)
hue(hsl(90,100%,50%))

輸出  90
  • saturation(@color); // 從顏色值中提取 saturation 值(飽和度)
    • 返回值 百分比0-100
saturation(hsl(90,100%,50%))

輸出  100%
  • lightness(@color); // 從顏色值中提取 'lightness' 值(亮度)
    • 返回0-100的百分比值
lightness(hsl(90,100%,50%))

輸出  50%
  • hsvhue(@color); // * 從顏色中提取 hue 值寡润,以HSV色彩空間表示(色相)
    • 返回0-360 的整數(shù)
  • hsvsaturation(@color); // * 從顏色中提取 saturation 值缺脉,以HSV色彩空間表示(飽和度)
    • 返回0-100百分比
  • hsvvalue(@color); // * 從顏色中提取 value 值,以HSV色彩空間表示(色調(diào))
    • 返回0-100百分比
  • red(@color); // 從顏色值中提取 'red' 值(紅色)
    • 返回整數(shù)0-255
  • green(@color); // 從顏色值中提取 'green' 值(綠色)
    • 返回整數(shù)0-255
  • blue(@color); // 從顏色值中提取 'blue' 值(藍(lán)色)
    • 返回整數(shù)0-255
  • alpha(@color); // 從顏色值中提取 'alpha' 值(透明度)
    • 返回浮點(diǎn)數(shù)0-1
  • luma(@color); // 從顏色值中提取 'luma' 值(亮度的百分比表示法)
    • 返回百分比0-100%
顏色運(yùn)算(Color operations)

顏色值運(yùn)算有幾點(diǎn)注意事項(xiàng):
參數(shù)必須單位/格式相同
百分比將作為絕對(duì)值處理悦穿,10%增加10%攻礼,是20%而不是11%
參數(shù)值只能在限定的范圍內(nèi)
返回值的時(shí)候,除了十六進(jìn)制外將其他格式做簡化處理

  • 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%); // 設(shè)定透明度為 50%
  • spin(@color, 10); // 色相值增加 10
    • 向任意方向旋轉(zhuǎn)顏色的色相角度,旋轉(zhuǎn)范圍是0-360瞬沦,超過將從起點(diǎn)繼續(xù)旋轉(zhuǎn)太伊,比如旋轉(zhuǎn)360和720是相同的結(jié)果。
    • 需要注意的是逛钻,顏色要通過 RGB 進(jìn)行格式轉(zhuǎn)換僚焦,這個(gè)過程不能保留灰色的色相值(灰色沒有飽和度,色相值也就沒有意義了)曙痘,因此要通過函數(shù)保留顏色的色相值
    • 因?yàn)轭伾涤肋h(yuǎn)輸出為RGB格式芳悲,因此spin()函數(shù)對(duì)灰色無效
  • mix(@color1, @color2, [@weight: 50%]); // 混合兩種顏色
    • 第三個(gè)參數(shù)是平衡兩種顏色的百分比立肘,默認(rèn)是50%
  • greyscale(@color); // 完全移除飽和度,輸出灰色
    • 與desaturate(@color, 100%)效果相同
  • contrast(@color1, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]); // 如果 @color1 的 luma 值 > 43% 輸出 @darkcolor名扛,否則輸出 @lightcolor
    • 比較顏色的谅年,比較復(fù)雜,等用到的時(shí)候再說吧
顏色混合(Color blending)

顏色混合的方式與圖像編輯器 Photoshop, Firework 或者 GIMP 的圖層混合模式 (layer blending modes) 相似肮韧,因此制作 .psd 文件時(shí)處理顏色的方法可以同樣用在 CSS 中融蹂。

  • multiply(@color1, @color2);
    • 分別將兩種顏色的RGB三種值做乘法運(yùn)算,然后再除以255弄企,輸出的結(jié)果是更深的顏色
    • 對(duì)應(yīng)ps中的“變暗/正片疊底”
  • screen(@color1, @color2);
    • 結(jié)果是更亮的顏色超燃,對(duì)應(yīng)ps中的“變亮/濾色”
  • overlay(@color1, @color2);
    • 結(jié)合前面兩個(gè)函數(shù)的效果,讓淺的更淺拘领,深的更深淋纲,類似于ps中的“疊加”
    • 第一個(gè)參數(shù)的疊加的對(duì)象,第二個(gè)參數(shù)是被疊加的顏色
  • softlight(@color1, @color2);
    • 與overlay效果相似院究,只是當(dāng)純黑色和純白色作為參數(shù)的時(shí)候輸出結(jié)果不是純黑純白洽瞬,對(duì)應(yīng)ps中的“柔光”
    • 第一個(gè)參數(shù)是混合色(光源),第二個(gè)參數(shù)是被混合的顏色
  • hardlight(@color1, @color2);
    • 與overlay效果相似业汰,不過由第二個(gè)顏色參數(shù)決定輸出顏色的亮度或黑度伙窃,對(duì)應(yīng)ps中的“強(qiáng)光/亮光/線性光/點(diǎn)光”
    • 第一個(gè)參數(shù)是混合色(光源),第二個(gè)參數(shù)是被混合的顏色
  • difference(@color1, @color2);
    • 從第一個(gè)顏色值中減去第二個(gè)样漆,輸出是更深的顏色为障,對(duì)應(yīng)ps中的“差值/排除”
    • 第一個(gè)參數(shù)是被減的顏色對(duì)象,第二個(gè)參數(shù)是減去的顏色對(duì)象
  • exclusion(@color1, @color2);
    • 效果和difference函數(shù)效果相似放祟,只是輸出結(jié)果差別更小鳍怨,ps中的“差值/排除”
    • 第一個(gè)參數(shù)是被減的顏色對(duì)象,第二個(gè)參數(shù)是減去的顏色對(duì)象
  • average(@color1, @color2);//對(duì)RGB三種顏色取平均值
  • negation(@color1, @color2);
    • 和difference函數(shù)效果相反跪妥,輸出結(jié)果是更亮的顏色
    • 注意:效果相反不代表做加法運(yùn)算
    • 第一個(gè)參數(shù)是被減的顏色對(duì)象鞋喇,第二個(gè)參數(shù)是減去的顏色對(duì)象
判斷函數(shù)
  • iscolor(@colorOrAnything); // 判斷一個(gè)值是否是顏色
  • isnumber(@numberOrAnything); // 判斷一個(gè)值是否是數(shù)字(可含單位)
  • isstring(@stringOrAnything); // 判斷一個(gè)值是否是字符串
  • iskeyword(@keywordOrAnything); // 判斷一個(gè)值是否是關(guān)鍵字
  • isurl(@urlOrAnything); // 判斷一個(gè)值是否是url
  • ispixel(@pixelOrAnything); // 判斷一個(gè)值是否是以px為單位的數(shù)值
  • ispercentage(@percentageOrAnything); // 判斷一個(gè)值是否是百分?jǐn)?shù)
  • isem(@emOrAnything); // 判斷一個(gè)值是否是以em為單位的數(shù)值
  • isunit(@numberOrAnything, "rem"); // * 判斷一個(gè)值是否是指定單位的數(shù)值

含*號(hào)的函數(shù)只在1.4.0 beta以上版本中可用

Bootstrap中l(wèi)ess的定制

了解Bootstrap中l(wèi)ess模塊機(jī)制

  • 在Bootstrap的less文件夾中有一個(gè)總文件是bootstrap.less
    • 里面有導(dǎo)入的變量、函數(shù)眉撵、基礎(chǔ)樣式(初始化文件侦香、圖標(biāo))、核心樣式纽疟、組件罐韩、javascript組件等
  • 在函數(shù)mixins.less中引用了很多的模塊的函數(shù)
    • 里面有彈出框、有按鈕污朽、有面板等很多的模塊

如何定制Bootstrap

線下定制

找到bootstrap的源碼 --> less文件夾 --> 修改源碼 --> bootstrap.less
比如:
Bootstrap默認(rèn)的柵格系統(tǒng)有12列散吵,間距15px,如果需要改的時(shí)候,修改變量Grid system中的
@grid-columns 12改成18
@grid-gutter-width 15px改成12px
類似于這樣修改完畢之后進(jìn)行編譯矾睦,shift+鼠標(biāo)右鍵 --> 此處打開命令窗口 --> lessc bootstrap.less bootstrap.css --> 回車

線上定制

定制并下載 -->不要哪個(gè)就把勾去掉 --> 修改哪個(gè)就修改 --> 點(diǎn)擊編譯并下載

版本的更新說明

在less的1.4.0的版本已經(jīng)更新了晦款,這個(gè)版本中引入了一些新的特性。什么派生啦顷锰,新的數(shù)學(xué)函數(shù)啦柬赐,還有嚴(yán)格運(yùn)算模式啦亡问,有興趣的可以深入的了解一下官紫。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市州藕,隨后出現(xiàn)的幾起案子束世,更是在濱河造成了極大的恐慌,老刑警劉巖床玻,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件毁涉,死亡現(xiàn)場離奇詭異,居然都是意外死亡锈死,警方通過查閱死者的電腦和手機(jī)贫堰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來待牵,“玉大人其屏,你說我怎么就攤上這事∮Ц茫” “怎么了偎行?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長贰拿。 經(jīng)常有香客問我蛤袒,道長,這世上最難降的妖魔是什么膨更? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任妙真,我火速辦了婚禮,結(jié)果婚禮上荚守,老公的妹妹穿的比我還像新娘隐孽。我一直安慰自己,他們只是感情好健蕊,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布菱阵。 她就那樣靜靜地躺著,像睡著了一般缩功。 火紅的嫁衣襯著肌膚如雪晴及。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天嫡锌,我揣著相機(jī)與錄音虑稼,去河邊找鬼琳钉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蛛倦,可吹牛的內(nèi)容都是我干的歌懒。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼溯壶,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼及皂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起且改,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤验烧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后又跛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體碍拆,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年慨蓝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了感混。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡礼烈,死狀恐怖弧满,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情济丘,我是刑警寧澤谱秽,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站摹迷,受9級(jí)特大地震影響疟赊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜峡碉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一近哟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鲫寄,春花似錦吉执、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至未斑,卻和暖如春咕宿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國打工府阀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缆镣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓试浙,卻偏偏與公主長得像董瞻,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子田巴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 先安利我最近看的一部電視劇吧:《雞毛飛上天》钠糊,講浙江義烏小商品市場怎么發(fā)展起來的故事,以小積大呀固额,所以我們的基礎(chǔ)一...
    Iris_mao閱讀 590評(píng)論 0 6
  • 1.less簡介及l(fā)ess環(huán)境搭建眠蚂,首先寫less語法前不得不提下sass煞聪,之前不了解less和sass之前斗躏,這兩...
    倘浩洋閱讀 6,111評(píng)論 0 19
  • 簡介 CSS(層疊樣式表)是一門歷史悠久的標(biāo)記性語言,同 HTML 一道昔脯,被廣泛應(yīng)用于萬維網(wǎng)(World Wide...
    老夫的天閱讀 1,925評(píng)論 1 29
  • 變量 注意你的less樣式文件一定要在引入less.js前先引入啄糙。 備注:請(qǐng)?jiān)诜?wù)器環(huán)境下使用!本地直接打開可能會(huì)...
    286f50208306閱讀 1,038評(píng)論 0 1
  • T浦伞隧饼!5.0新增過渡動(dòng)畫 1.屬性動(dòng)畫 !静陈!改變控件真實(shí)的值ObjiectAnimator extends Valu...
    RoboyCore閱讀 816評(píng)論 0 0