Less.js簡單介紹

Less是一門向後兼容的CSS 預處理語言。使 CSS 更易維護和擴展。
安裝
在服務器上安裝less最簡單方法是通過node.js軟件包管理npm安裝,-g全局安裝

npm install less -g

Less的新功能:

1.新增變量

在樣式表中相同的值重複n多次,使用變量控制這些值,使代碼更易於維護。

@link-color: #428bca; 
a, .link { color: @link-color; }
div {backgroud:  @link-color; }

2.混合(Mixins)
將一個規則集包含到另一個規則集裏去。
例如:定義一個類class = ‘myborder’:

.myborder {
  border-top: dotted 1px black;
  border-bottom: solid 2px black;
}

在其它規則中需要使用這個類裏的屬性

#menu a {
  color: #111;
  .myborder();  // 這裏
}

3.嵌套
css代碼如下:

#header {
  color: black;
}
#header .navigation {
  font-size: 12px;
}
#header .logo {
  width: 300px;
}

用 Less 語言改寫代碼如下:
用 Less 書寫的代碼更加簡潔,並且模仿了 HTML 的組織結構。

#header {
  color: black;
  .navigation {
    font-size: 12px;
  }
  .logo {
    width: 300px;
  }
}

4、@規則嵌套和冒泡
@規則可以和選擇器以相同方式嵌套,@規則會被放在前面。
同一規則集裏其他元素的相對順序保持不變,叫做冒泡
Less代碼

.component {
  width: 300px;
  @media (min-width: 768px) {
    width: 600px;
    @media  (min-resolution: 192dpi) {
      background-image: url(/img/retina2x.png);
    }
  }
}

編譯爲:

.component {
  width: 300px;
}
@media (min-width: 768px) {
  .component {
    width: 600px;
  }
}
@media (min-width: 768px) and (min-resolution: 192dpi) {
  .component {
    background-image: url(/img/retina2x.png);
  }
}

5、運算
如果可能的話,算術運算符在加、減或比較之前會進行單位換算。計算的結果以最左側操作數的單位類型爲準。

@color: #224488 / 2; //結果是 #112244
background-color: #112244 + #111; // 結果是 #223355

6、轉義

// 3.5+版本Less
@min768: (min-width: 768px);
.element {
  @media @min768 {
    font-size: 1.2rem;
  }
}

編譯爲:

@media (min-width: 768px) {
  .element {
    font-size: 1.2rem;
  }
}

7、函數
Less內置了多種函數用於轉換顏色、處理字符串、算術運算等
例如:用·percentage函數把0.5轉換成50%,用saturate將顏色飽和度增加5%

@base: #f04615;
@width: 0.5;
.class {
  width: percentage(@width); // returns `50%`
  color: saturate(@base, 5%);
  }

8、命名空間和訪問符
將一些混合(mixins)和變量置於 #bundle 之下,爲了以後方便重用或分發:

#bundle() {
  .button {
    border: 1px solid black;
  }
  .tab { ... }
  .citation { ... }
}

如果想把.button 混合到另一個規則裏面

#header a {
  color: orange;
  #bundle.button(); //如果不希望它們出現在輸出的 CSS 中,例如 #bundle .tab,請將 () 附加到命名空間(例如 #bundle())後面。
}s

9、maps映射
通過key: 對象[屬性]的格式來實現映射

#colors() {
  primary: blue;
  secondary: green;
}
.button {
  color: #colors[primary];   // color輸出:blue
  border: 1px solid #colors[secondary];    // 1px solid green

10、作用域
less的作用域與css的作用域類似。先在本地查找變量和混合,若找不到,則從父級作用域繼承

@var: red;
#page {
  @var: white;
  #header {
    color: @var; // white
  }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章