国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

#Less# less相關(guān)知識點總結(jié)

meteor199 / 3250人閱讀

摘要:是一門預處理語言,它擴展了語言,增加了變量函數(shù)等特性,使更易維護和擴展。所以在生產(chǎn)環(huán)境中,我們需要事前把文件編譯為正常的后,在相應文件中引入,以后用戶訪問的都是編譯好的,為不是拿現(xiàn)編譯的。代碼編譯為的結(jié)果

Less和CSS的區(qū)別

HTML和CSS不屬于編程語言而是屬于標記語言,很難像JS一樣定義變量、編寫方法、實現(xiàn)模塊化開發(fā)等。
LESS是一門CSS預處理語言,它擴展了CSS語言,增加了變量、Mixin、函數(shù)等特性,使CSS更易維護和擴展。
使用LESS基本上按照這樣的步驟:編寫LESS代碼,使用NODE、JS或者是其他的工具把編寫的LESS代碼編譯成我們平時看到的CSS代碼(因為瀏覽器是無法解析LESS的語法的,所以編寫完成的LESS代碼需要進行編譯)。

Less叫做預編譯css,寫好的less代碼瀏覽器是不能直接渲染的,需要我們把它編譯成為能渲染的css才可以。

編譯Less

開發(fā)環(huán)境中
在開發(fā)環(huán)境下,我們一般都通過導入less插件來隨時編譯less代碼。

</>復制代碼

  1. //注意rel="stylesheet/less"中必須加上less

生產(chǎn)環(huán)境中

由于每一次加載頁面都需要導入LESS插件,并且把LESS文件重新編譯為CSS,很消耗性能,導致頁面打開速度變慢。所以在生產(chǎn)環(huán)境中,我們需要事前把LESS文件編譯為正常的CSS后,在相應文件中引入,以后用戶訪問的都是編譯好的CSS,為不是拿LESS現(xiàn)編譯的。
生產(chǎn)環(huán)境下,我們需要事先把LESS編譯成CSS方法:
1)使用Node編譯

</>復制代碼

  1. 這種方式是目前項目中最常用的方式,它是把我們的LESS文件編譯成CSS文件,我們項目中直接的引入CSS文件即可.
  2. (1) 安裝node
  3. (2) 把LESS模塊安裝到全局NODE環(huán)境中

</>復制代碼

  1. npm install less -g

</>復制代碼

  1. (3) 使用命令進行編譯

</>復制代碼

  1. //->把styles.less文件編譯成styles.css文件(如果沒有這個CSS文件自己會創(chuàng)建)
  2. lessc styles.less styles.css
  3. //->編譯完成的CSS文件是經(jīng)過壓縮的
  4. lessc styles.less styles.min.css -x或者--compress

</>復制代碼

  1. 如果你想要更牛X的壓縮,還可以自己多帶帶的設(shè)定,下面我們使用–clean-css。這個需要提前的安裝less-plugin-clean-css模塊才可以。

</>復制代碼

  1. //->安裝less-plugin-clean-css
  2. npm install -g less-plugin-clean-css
  3. //->安裝成功后就可以使用它壓縮了
  4. lessc --clean-css styles.less styles.min.css

2)使用編譯工具(less在線編譯)

</>復制代碼

  1. 目前常用的編譯工具有:Koala(據(jù)說目前最流行的)、在線編譯(http://tool.oschina.net/less)、SimpLESS等。
Less的基本語法

less中的變量
和JS中的變量一樣,只是LESS的變量定義不是使用VAR而是使用@。

</>復制代碼

  1. //用變量存儲公用的屬性值
  2. @shadowColor: #000;
  3. .inner {
  4. box-shadow: 0 0 10px 0 @shadowColor;
  5. }
  6. //用變量存儲公用的URL、選擇器
  7. @selector: box;
  8. @bgImg: "../img";
  9. @property: color;
  10. @name: "fung";
  11. //->LESS代碼
  12. .@{selector} {
  13. width: 100px;
  14. height: 100px;
  15. @{property}: #000;
  16. background: url("@{bgImg}/test.png");
  17. &:after {
  18. display: block;
  19. content: @@var;
  20. }
  21. }

混合(Mixins)
所謂的混合其實是把某個選擇器中的樣式拷貝一份拿過來使用

</>復制代碼

  1. //->LESS代碼
  2. .public {
  3. width: 100px;
  4. height: 100px;
  5. }
  6. nav ul {
  7. .public;
  8. list-style: none;
  9. }
  10. //->編譯為CSS的結(jié)果
  11. .public {
  12. width: 100px;
  13. height: 100px;
  14. }
  15. nav ul {
  16. width: 100px;
  17. height: 100px;
  18. list-style: none;
  19. }

我們發(fā)現(xiàn)其實nav ul是把public中設(shè)定的樣式屬性值copy了一份到自己的樣式中。如果你想在編譯完成的結(jié)果中不輸出public這個樣式的結(jié)果,只需要按照下述的代碼編寫即可:

</>復制代碼

  1. //->LESS代碼
  2. .public() {//->在選擇器后面加上()就可以不編譯這個樣式了
  3. width: 100px;
  4. height: 100px;
  5. }
  6. nav ul {
  7. .public;
  8. list-style: none;
  9. }
  10. //->編譯為CSS的結(jié)果
  11. nav ul {
  12. width: 100px;
  13. height: 100px;
  14. list-style: none;
  15. }

3.extend

</>復制代碼

  1. 雖然在上述的案例中,nav ul把public中的樣式繼承了過來,但是原理卻是把代碼copy一份過來,這樣編譯后的CSS中依然會存留大量的冗余CSS代碼,為了避免這一點,我們可以使用extend偽類來實現(xiàn)樣式的繼承使用。
  2. ```
  3. //->LESS代碼
  4. .public {
  5. width: 100px;
  6. height: 100px;
  7. }
  8. nav ul {
  9. &:extend(.public);
  10. list-style: none;
  11. }
  12. //->編譯為CSS的結(jié)果
  13. .public, nav ul {
  14. width: 100px;
  15. height: 100px;
  16. }
  17. nav ul {
  18. list-style: none;
  19. }
  20. ```
  21. 或者
  22. ```
  23. //->LESS代碼
  24. .public {
  25. width: 100px;
  26. height: 100px;
  27. }
  28. nav ul:extend(.public) {
  29. list-style: none;
  30. }
  31. //->編譯為CSS的結(jié)果和第一種寫法一樣
  32. ```

4.命名空間和作用域

</>復制代碼

  1. 在LESS中定義了命名空間就創(chuàng)建了一個私有的作用域,在這個私有作用域中使用的變量都是先看一下自己作用域中有沒有,沒有的話,在向上一級查找(類似于JS的作用域鏈)
  2. ```
  3. //->LESS代碼
  4. @color: #ccc;
  5. .box {
  6. @color: #eee;
  7. .gray {
  8. color: @color;
  9. }
  10. }
  11. .box2 {
  12. .gray {
  13. color: @color;
  14. }
  15. }
  16. //->編譯為CSS的結(jié)果
  17. .box .gray {
  18. color: #eee;
  19. }
  20. .box2 .gray {
  21. color: #ccc;
  22. }
  23. ```

5.!important
在調(diào)用的混合集后面追加 !important 關(guān)鍵字,可以使混合集里面的所有屬性都繼承 !important.

</>復制代碼

  1. //->LESS代碼
  2. @color: #ccc;
  3. .box {
  4. @color: #eee;
  5. .gray {
  6. color: @color;
  7. }
  8. }
  9. nav ul {
  10. .box !important;
  11. }
  12. //->編譯為CSS的結(jié)果
  13. .box .gray {
  14. color: #eee;
  15. }
  16. nav ul .gray {
  17. color: #eee !important;
  18. }

6.函數(shù)
如同JS一樣,LESS也可以向函數(shù)一樣設(shè)定形參數(shù),這個技巧在我們的項目中會被經(jīng)常的使用到,例如:處理CSS3的兼容問題

</>復制代碼

  1. //->LESS代碼
  2. .transition(@property:all;@duration:1s;@function:linear;@delay:0s;) {
  3. -webkit-transition: @property @duration @function @delay;
  4. -moz-transition: @property @duration @function @delay;
  5. -ms-transition: @property @duration @function @delay;
  6. -o-transition: @property @duration @function @delay;
  7. transition: @property @duration @function @delay;
  8. }
  9. .box1 {
  10. .transition;
  11. }
  12. .box2 {
  13. .transition(@duration: 2s);
  14. }
  15. .box3 {
  16. .transition(@duration: 2s; @property: width;);
  17. }
  18. //->編譯為CSS的結(jié)果
  19. .box1 {
  20. -webkit-transition: all 1s linear 0s;
  21. -moz-transition: all 1s linear 0s;
  22. -ms-transition: all 1s linear 0s;
  23. -o-transition: all 1s linear 0s;
  24. transition: all 1s linear 0s;
  25. }
  26. .box2 {
  27. -webkit-transition: all 2s linear 0s;
  28. -moz-transition: all 2s linear 0s;
  29. -ms-transition: all 2s linear 0s;
  30. -o-transition: all 2s linear 0s;
  31. transition: all 2s linear 0s;
  32. }
  33. .box3 {
  34. -webkit-transition: width 2s linear 0s;
  35. -moz-transition: width 2s linear 0s;
  36. -ms-transition: width 2s linear 0s;
  37. -o-transition: width 2s linear 0s;
  38. transition: width 2s linear 0s;
  39. }

此外我們需要值得注意的是,LESS中也有arguments。

</>復制代碼

  1. //->LESS代碼
  2. .transition(@property:all;@duration:1s;@function:linear;@delay:0s;) {
  3. -webkit-transition: @arguments;
  4. transition: @arguments;
  5. }
  6. .box1 {
  7. .transition;
  8. }
  9. //->編譯為CSS的結(jié)果
  10. .box1 {
  11. -webkit-transition: all 1s linear 0s;
  12. transition: all 1s linear 0s;
  13. }

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/116069.html

相關(guān)文章

  • less學習之Bootstrap(按鈕篇)

    摘要:學習之按鈕篇如我上一篇學習之里面,介紹了的目錄結(jié)構(gòu),說明了在這個文件里面,定義了主題色,也包括了按鈕的主題色。偽連接,按鈕的樣式顯示為連接的樣式。接下來的安排,自己寫的文章自己也會去實現(xiàn)它,另外關(guān)于的學習也不會停止。 less學習之Bootstrap按鈕篇) 如我上一篇less學習之Bootstrap里面,介紹了Bootstrap的目錄結(jié)構(gòu),說明了在variables.less這個文件...

    sherlock221 評論0 收藏0
  • 關(guān)于sass、scss、less的概念性知識匯總

    摘要:而使用預處理器,提供缺失的樣式層復用機制減少冗余代碼,提高樣式代碼的可維護性。所以我們在實際項目中衡量預編譯方案時,還是得想想,比起帶來的額外維護開銷,預處理器有沒有解決更大的麻煩。也是成熟的預處理器之一,而且有一個穩(wěn)定,強大的團隊在維護。 這篇文章主要解答以下幾個問題,供前端開發(fā)者的新手參考。 1、什么是Sass和Less? 2、為什么要使用CSS預處理器? 3、Sass和Less的...

    HmyBmny 評論0 收藏0
  • 關(guān)于sass、scss、less的概念性知識匯總

    摘要:而使用預處理器,提供缺失的樣式層復用機制減少冗余代碼,提高樣式代碼的可維護性。所以我們在實際項目中衡量預編譯方案時,還是得想想,比起帶來的額外維護開銷,預處理器有沒有解決更大的麻煩。也是成熟的預處理器之一,而且有一個穩(wěn)定,強大的團隊在維護。 這篇文章主要解答以下幾個問題,供前端開發(fā)者的新手參考。 1、什么是Sass和Less? 2、為什么要使用CSS預處理器? 3、Sass和Less的...

    xuweijian 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<