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。
在編譯后的index.css文件中,帶參數的變量不顯示
3.混合也可以帶默認值
在border_03后面加一個(),里面聲明一個變量,變量后面附一個初始值“:10px”;
如果不想用默認值,只要在text_hunhe下的border_03的()中寫入值即可。
默認值必須帶(),不然會報錯。
4.混合高級使用示例,兼容性也可以使用
<code><div class="radius_test"></div></code>
在編譯后的index.css文件中,展示如下
七、匹配模式
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>