Less 平常用法

Less 平常用法

你須要瞭解的

less 和 sass 是兩種 css 預編譯語言,其目的是爲了更快、更結構的編寫 css 文件,是一種強大的 css 編譯語言,能使用 變量、運算符、判斷、方法等等。css

本文我只寫一些本身經常使用的方法,要看所有的幫助文檔,參閱這裏: http://lesscss.cn/features/

看個小例子

寫一個 .btn 類並支持 :hover :active 樣式git

CSSgithub

.btn {
/* btn 初始樣式 */
}
.btn:hover{
/* :hover 樣式 */
}
.btn:active{
/* :active 樣式 */
}

Lessbootstrap

.btn{
// btn 初始樣式
    &:hover{
        // hover 樣式
    }
    &:active{
        // active 樣式
    }
}

能夠看出 less 的結構要比 css 清晰,而且寫的也要更少。
下面的 less 在使用中就會生成上面的 css。
而這還只是皮毛,保證你用過 less 以後就不會再用 css 寫樣式了。sass

變量

less 是支持變量的,由於有了變量,讓 less 在改變全局樣式的時候更加方便了。
通常使用中,顏色是最經常使用的。其次是單位長度。less

@變量名: 變量值
// 如:
// Colors
@red:       #CD594B;
@yellow:    #F8CE5E;
@green:     #4B9E65;
@yellow:    #5A8DEE;

// Unites
@btn-padding: 4px;
@btn-lineheight: 26px;

實際使用中:函數

less學習

.btn-success {
    background-color: @green;
    line-height: @btn-lineheight;
    color: #fff;
}

生成 cssspa

.btn-success {
    background-color: #4B9E65;
    line-height: 26px;
    color: #fff;
}

混合

能夠直接在其它類中插入其它類的內容。code

less

.bg-yellow {
    background-color: @yellow;
}

.btn-warn {
    line-height: @btn-lineheight;
    .bg-yellow;
}

會生成 css

.bg-yellow {
    background-color: #F8CE5E;
}

.btn-warn {
    line-height: 26px;
    background-color: #F8CE5E;
}

運算符

less 支持 + - * / ( ) 運算,看例子

@width-20: 20px;
@count: 3;
@per-10: 10%;

.card{
    width: @width-20 * @count;
    min-width: @per-10 * 7;
}
// 注意,運算的時候,要在運算符兩邊留空格,由於可能會有橫線鏈接的變量,形成混淆。
// 單位 less 能夠自動識別,不用擔憂單位。

輸出

.card{
    width: 60px;
    min-width: 70%;
}

less 的內置函數

參閱 : http://lesscss.cn/functions/#...

完整的函數有:
雜項函數字符串函數列表函數數學函數類型函數顏色定義函數顏色通道函數顏色操做函數顏色混合函數

這裏只說一此關於顏色的經常使用方法,由於其它的我如今也沒怎麼用到。

lighten(顏色, 百分比)
// 調高顏色的亮度

darden(顏色, 百分比)
// 調低顏色的亮度

saturate(顏色, 百分比)
// 調高飽和度

desaturate(顏色, 百分比)
// 調低飽和度

clipboard.png

@green: #4B9E65;


.green{
  background-color: @green;
}

.green-lighten{
  background-color: lighten(@green,20%);
}

.green-darken{
  background-color: darken(@green,20%);
}

.green-saturate{
  background-color: saturate(@green,20%);
}

.green-desaturate{
  background-color: desaturate(@green,20%);
}

輸出

.green {
  background-color: #4B9E65;
}
.green-lighten {
  background-color: #88c79c;
}
.green-darken {
  background-color: #2a5939;
}
.green-saturate {
  background-color: #34b55c;
}
.green-desaturate {
  background-color: #62876e;
}

函數方法的使用

有時候,好比,你須要寫一個按鈕類 .btn-success, .btn-danger, .btn-default, .btn-warning,若是單個定義的話,會很麻煩,如今用了方法,就能夠直接填參數完成了。

less

@green:     #4B9E65;
@blue:      #5A8DEE;
@yellow:    #F8CE5E;
@red:       #CD594B;

.btn-template(@bgcolor,@fcolor:white){
// 定義了兩個參數,第二個參數有默認值
// 也就是說這個方法能夠值一個或兩個參數
// 另外 帶 () 參數的方法不會把自身渲染到 css 中,只有調用纔會渲染
  color: @fcolor;
  border-color: darken(@bgcolor, 3%);
  background-color: @bgcolor;
  &:hover {
    color: @fcolor;
    background-color: darken(@bgcolor, 5%);
  }
  &:active {
    color: @fcolor;
    background-color: darken(@bgcolor, 10%);
  }
}

.btn-success{
  .btn-template(@green)
}
.btn-primary{
  .btn-template(@blue)
}

.btn-warning{
  .btn-template(@yellow)
}

.btn-danger{
  .btn-template(@red)
}

上面的 less 輸出爲下面的內容,有沒有很厲害

.btn-success {
  color: white;
  border-color: #46945e;
  background-color: #4B9E65;
}
.btn-success:hover {
  color: white;
  background-color: #438d5a;
}
.btn-success:active {
  color: white;
  background-color: #3b7b4f;
}
.btn-primary {
  color: white;
  border-color: #4c83ed;
  background-color: #5A8DEE;
}
.btn-primary:hover {
  color: white;
  background-color: #437dec;
}
.btn-primary:active {
  color: white;
  background-color: #2c6de9;
}
.btn-warning {
  color: white;
  border-color: #f7ca4f;
  background-color: #F8CE5E;
}
.btn-warning:hover {
  color: white;
  background-color: #f7c746;
}
.btn-warning:active {
  color: white;
  background-color: #f6bf2d;
}
.btn-danger {
  color: white;
  border-color: #ca4e3f;
  background-color: #CD594B;
}
.btn-danger:hover {
  color: white;
  background-color: #c74737;
}
.btn-danger:active {
  color: white;
  background-color: #b34032;
}

文件拆分,文件引用

像 js 和其它高級開發語言同樣, less 也能夠引用外部的 less 文件

引用格式:

@import "variables.less"

這樣就把外部的 variables.less 引入到當前文件中了

variables.less
// colors
@green:     #4B9E65;
@blue:      #5A8DEE;
@yellow:    #F8CE5E;
@red:       #CD594B;

// units
@common-height: 30px;
@input-height: 26px;
@input-padding: 4px;
主體less文件
@import "variables.less"

// 主文件裏面就能夠引用 variables.less 中的變量了。

學習 Less 最好的例子

就是去看 bootstrap 3.4 的樣式源碼,bootstrap 3.4 就是用 less 寫的,這也是我後來用 less 沒用 sass 的主要緣由。

下載 bootstrap 3.4 的 less 源碼,看裏面怎麼寫的,進步很快的。


是我孤陋寡聞了,原來 bootstarp 4 已經換做 SCSS 了,我也要轉向 SCSS 了,學習完了再來分享給你們。

點這裏去 github 查看 【 Bootstrap 分支 】 ,目前好像已經開始 v5.0 的開發了。

相關文章
相關標籤/搜索