編譯工具
koala:http://koala-app.com/index-zh.html
1、註釋
@charset utf-8;
/*====註釋=====*/
//不被編譯的註釋
/*會被編譯的註釋*/
2、變量
/*====變量=====*/
在編譯時候變量不會顯示出來,引用時纔會顯示,變量也有局部變量和全局變量,在規格內定義的變量,其他規則不能訪問
less code:
- @width100:100px;
- @height100:100px;
- .box{width:@width100;height:@height100;}
編譯後的css code
- .box{width:100px;height:100px;}
3、混合
混合分基本混合,和帶參數的混合
/*====混合=====*/
less code
- @border1px:1px solid;
- .red{color:red;}
- a{
- border:@border1px;
- border-color:#ddd;
- .red;
- }
編譯後css code
- a{
- border:1px solid;
- border-color:#ddd;
- color:red
- }
//混合可帶參數,無默認值的在引用時一定要傳參不然編譯報錯
less code
- .bdr(@num){
- -webkit-border-radius:@num;
- -moz-border-radius:@num;
- border-radius:@num;
- }
- .box{.bdr(5px);}
編譯後css code
- .box{
- -webkit-border-radius:5px;
- -moz-border-radius:5px;
- border-radius:5px;
- }
//混合-參數帶默認值,多個參數逗號隔開
less code
- .box1(@width:100px,@height:201px){
- width:@width;
- height:@height;
- border:1px solid #999;
- }
- .box2{.box1();}
編譯後css code
- .box2{
- width:100px;
- height:201px;
- border:1px solid #999;
- }
4.匹配模式
/*====匹配模式=====*/
//匹配模式- 定位案例
//@_這個是固定格式,如果規則中有@_那麼@_所在規則裏的內容不管是否匹配唱功都會默認被編譯輸出,但是必須注意如果匹配規則中有其他的參數,在@_所在規則中也必須加上其他相應的參數,如下面案例中參數寫全爲(@_,@width:200px)
less code
- .pos(relative,@width:200px){
- position:relative;
- width:@width;
- }
- .pos(abslute,@width:200px){
- position:abslute;
- width:@width;
- }
- .pos(fixed,@width:200px){
- position:fixed;
- width:@width;
- }
- .pos(@_,@width:200px){
- height:200px;
- } .box{.pos(relative)}
編譯後css code
- .box{
- position:relative;
- width:200px;
- height:200px;
- }
5、運算
/*====運算=====*/
可以進行加減乘除運算
less code
- @width300px:300px;
- .box2{width:@width300px*2-20;}
編譯後css code
- .box2 {
- width: 580px;
- }
6、嵌套規則
/*====嵌套規則=====*/
//注意:嵌套規則&代表上一層
less code
- li{
- background:#333;
- a{
- color:#999;
- &:hover{
- color:#000;
- }
- }
- &.lf{float:left}
- }
編譯後css code
- li {
- background: #333;
- }
- li a {
- color: #999;
- }
- li a:hover {
- color: #000;
- }
- li.lf {
- float: left;
- }
- li {
- background: #333;
- }
- li a {
- color: #999;
- }
7、arguments
/*====arguments=====*/
//說明 arguments代表所有的參數,不用挨個一一書寫
less code
- .boxShaDow(@x:2px,@y:2px,@spread:5px,@color:#999){
- box-shadow:@arguments;
- }
- .box5{
- .boxShaDow();
- }
編譯後css code
- .box5 {
- box-shadow: 2px 2px 5px #999999;
- }
8、避免編譯
/*====避免編譯=====*/
// ~’ ‘ 在一下案例中,如果沒有用~’ ‘包裹起來,會被編譯成width:calc(270px) ;,如果不用~和引號包裹起來,編譯可能會出錯
less code
- .box6{
- width:~'calc(300px-30px)' !important;
- top: ~"expression(eval(document.documentElement.scrollTop+10));"
- }
編譯後css code
- .box6{
- width:calc(300px-30px) !important;
- top: expression(eval(document.documentElement.scrollTop+10));
- }
常用函數
Color 函數
LESS 提供了一系列的顏色運算函數. 顏色會先被轉化成 HSL 色彩空間, 然後在通道級別操作:
lighten(@color, 10%); // return a color which is 10% *lighter* than @color
darken(@color, 10%); // return a color which is 10% *darker* than @color
saturate(@color, 10%); // return a color 10% *more* saturated than @color
desaturate(@color, 10%); // return a color 10% *less* saturated than @color
fadein(@color, 10%); // return a color 10% *less* transparent than @color
fadeout(@color, 10%); // return a color 10% *more* transparent than @color
fade(@color, 50%); // return @color with 50% transparency
spin(@color, 10); // return a color with a 10 degree larger in hue than @color
spin(@color, -10); // return a color with a 10 degree smaller hue than @color
mix(@color1, @color2); // return a mix of @color1 and @color2
使用起來相當簡單:
@base: #f04615;
.class {
color: saturate(@base, 5%);
background-color: lighten(spin(@base, 8), 25%);
}
你還可以提取顏色信息:
hue(@color); // returns the `hue` channel of @color
saturation(@color); // returns the `saturation` channel of @color
lightness(@color); // returns the ‘lightness’ channel of @color
如果你想在一種顏色的通道上創建另一種顏色,這些函數就顯得那麼的好用,例如:
@new: hsl(hue(@old), 45%, 90%);
@new 將會保持 @old的 色調, 但是具有不同的飽和度和亮度.
Math 函數
LESS提供了一組方便的數學函數,你可以使用它們處理一些數字類型的值:
round(1.67); // returns `2`
ceil(2.4); // returns `3`
floor(2.6); // returns `2`
如果你想將一個值轉化爲百分比,你可以使用percentage 函數:
percentage(0.5); // returns `50%`
更多其他函數
地址:http://less.bootcss.com/functions/
其他參考資料:
http://www.w3cplus.com/css/less
http://www.bootcss.com/p/lesscss/