Less入門學習總結

jopen 9年前發布 | 15K 次閱讀 CSS 前端技術 LESS

 

一、什么是Less

Less類似于Jquery。

Less CSS是一種動態樣式語言,屬于CSS預處理語言的一種,它使用類似CSS的語法, 為CSS賦予了動態語言的特性,如變量、繼承、運算、函數等 ,更方便CSS的編寫和維護。

二、編譯工具

1.Koala:國人開發的LESS/SASS編譯工具

下載地址:http://koala-app.com/index-zh.html

2.Node.js庫

3.瀏覽器端使用

三、koala配置及使用

1.新建后綴為.less文件:index.less

頭部寫上:@charset "utf-8"; // 設定字符集

2.把文件夾拖到koala中,設置輸出路徑為style下的index.css

使用koala進行編譯,然后就生成了一個index.css文件。

3.之后我們只要編輯index.less文件即可。

四、注釋

1./*編譯后會被保留*/

2.//編譯后不會被保留

五、變量

1.設定變量:

@text_width: 300px;

2.使用變量:示例如下

<code><div class="box"></div></code>

<code>

.box{

width: @text_width;

height: @text_width;

background: #000;

}

</code>

六、混合

1.混合簡介:與原有的在class中新追加class的方法有所不同(原有<div class="box border"></div>),使用Less的混合功能后,只要聲明.border后,在.box中加 入.border;即可。

使用示例一:

<code><div class="box"></div></code>

<code>

.box{

width: @text_width;

height: @text_width;

background: #000;

.border;

}

.border{

border: 5px solid yellow;

}

</code>

使用示例二:新增一個box2,但是它和box1只有一點點細微的區別,可以直接拿來box1使用,然后加上它自己的樣式。

.box2{

.box1;

margin-left: 100px;

}

2.混合是可以帶參數的

在index.less中使用帶參數的值,在border_02后面加一個(),里面聲明一個變量;

然后傳入參數30px。

Less入門學習總結

在編譯后的index.css文件中,帶參數的變量不顯示

Less入門學習總結

3.混合也可以帶默認值

在border_03后面加一個(),里面聲明一個變量,變量后面附一個初始值“:10px”;

如果不想用默認值,只要在text_hunhe下的border_03的()中寫入值即可。

默認值必須帶(),不然會報錯。

Less入門學習總結

4.混合高級使用示例,兼容性也可以使用

<code><div class="radius_test"></div></code>

Less入門學習總結

在編譯后的index.css文件中,展示如下

Less入門學習總結

七、匹配模式

1.簡介:相當于js中的if,但不完全是

2.示例

先介紹一個畫倒三角的方法

<code><div class="sanjiao"></div></code>

<code>

.sanjiao{

width: 0;

height: 0;

overflow: hidden;

border-width: 10px;

border-color: red transparent transparent transparent;

border-style: solid dashed dashed dashed;

}

</code>

匹配模式示例一:

<code>

.triangle(top,@w:5px,@c:#ccc){

border-width: @w;

border-color: @c transparent transparent transparent;

border-style: solid dashed dashed dashed;

}

.triangle(right,@w:5px,@c:#ccc){

border-width: @w;

border-color:  transparent @c transparent transparent;

border-style:  dashed solid dashed dashed;

}

.triangle(bottom,@w:5px,@c:#ccc){

border-width: @w;

border-color:  transparent transparent @c transparent;

border-style:  dashed dashed solid dashed;

}

.triangle(left,@w:5px,@c:#ccc){

border-width: @w;

border-color:  transparent transparent transparent @c;

border-style:  dashed dashed dashed solid;

}

.triangle(@_,@w:5px,@c:#ccc){ // @_ 是固定格式,表示不管你匹配到誰,都會帶上這些內容

width: 0;

height: 0;

overflow: hidden;

}

.sanjiao{

.triangle(right,100px);

}

</code>

匹配模式示例二:

匹配模式定位

<code>

.pos(r){position:relative;}

.pos(a){position:absolute;}

.pos(f){position:fixed;}

.posi{

width: 100px;

height: 100px;

background: blue;

.pos(r);

}

</code>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!