Less其實就是css預處理器,簡單的說,就是動態編寫css。css
首先以vue中開發爲例,先安裝less和less-loadervue
npm install less less-loader
格式: @變量名npm
@width:100px; .hello{ width: @width; }
最終輸出:less
.hello{ width:100px; }
格式:@{變量名}函數
@color:color; .hello{ @{color}:blue; }
最終輸出:code
.hello{ color:blue; }
格式:@{變量名}開發
@color:color; .hello{ background-@{color}: red; }
最終輸出:字符串
.hello{ background-color: red; }
格式:@{變量名}get
@dialog:.dialog; @{dialog}{ width:80px; height:80px; background: green; }
最終輸出:scss
.dialog{ width: 80px; height: 80px; background: green; }
格式:@{變量名}
@fix:fix; .d-@{fix}{ color:gold; }
最終輸出:
.d-fix{ color: gold; }
less中容許將已有的class或者id運用在不一樣的選擇器上
.border{ border:2px solid blue; } .hello{ .border; }
最終輸出:
.hello{ border: 2px solid blue; }
.border(@border-wdith){ border:@border-wdith solid palegreen; } .hello{ .border(20px); }
最終輸出:
.hello{ border: 20px solid palegreen; }
.border(@border-width:10px){ border:@border-width solid blue; } .hello{ .border(); }
最終輸出:
.hello{ border: 10px solid blue; }
若是不想要默認值,能夠.border(參數值)
.pos(r){ position: relative; } .pos(a){ position: absolute; } .pos(f){ position: fixed; } .hello{ .pos(f); }
最終輸出:
.hello{ position: fixed; }
若:
.pos(@_){ width:100px; }
最終輸出:
.hello{ width:100px; position: fixed; }
@_表示全部的.pos都必須帶上裏面的屬性
@width:20px; .hello{ width: @width*2+10; }
最終輸出:
.hello{ width: 50px; }
.list{ li{ width:100px; } }
最終輸出:
.list li{ width: 100px; }
less中懸浮:
.list{ &:hover{ background: red; } }
最終輸出:
.list:hover{ background: red; }
注意:&在less中是表示上一層選擇器的意思
.border(@border-width:3px,@x:solid,@c:black){ border:@arguments; } .box{ .border(); }
最終輸出:
.box{ border: 3px solid black; }
@arguments就是表示()中全部參數值
格式:~"" 或者 ~''
@min768: ~"(min-width: 768px)"; .hello { @media @min768 { font-size: 20px; } }
最終輸出:
@media (min-width: 768px){ .hello{ font-size: 20px; } }
當less沒法識別某個字符串的時候,就得用轉義,防止編譯錯誤
less內置了不少用於轉換顏色、處理字符串等函數,具體見官網地址:http://lesscss.cn/functions/
.mixin (@flag) when (@flag){ font-weight: bold; } .hello{ .mixin(true); }
最終輸出:
.hello{ font-weight: bold; }
當@flag爲真的時候,就調用