|
@import (reference) "variables.less"; |
|
//公共的minix开始------------------------------------------------------------------------------------------- |
|
.clearfix{ |
|
&:before,&:after{ |
|
display: table; |
|
content: ''; |
|
} |
|
&:after{ |
|
clear: both; |
|
} |
|
} |
|
.horizontalCenter(@width){ |
|
position: absolute; |
|
left: 50%; |
|
width: @width; |
|
margin-left: -@width/2; |
|
} |
|
.absuCenter(@width;@height){ |
|
position: absolute; |
|
top: 50%; |
|
left: 50%; |
|
width: @width; |
|
height: @height; |
|
margin-left: -@width/2; |
|
margin-top: -@height/2; |
|
} |
|
.textOverflow{ |
|
white-space: nowrap; |
|
text-overflow: ellipsis; |
|
overflow:hidden; |
|
} |
|
.position(@position,@top:auto,@right:auto,@bottom:auto,@left:auto,@z-index:auto){ |
|
position: @position; |
|
top: @top; |
|
right: @right; |
|
bottom: @bottom; |
|
left: @left; |
|
z-index: @z-index; |
|
} |
|
|
|
//为兼容不同浏览器的minix |
|
.opacity(@opacity){ |
|
@filter:@opacity * 100; |
|
opacity: @opacity; |
|
filter: alpha(opacity=@filter); |
|
} |
|
.calcWidth(@width){ |
|
width:-moz-calc(@width); |
|
width:-webkit-calc(@width); |
|
width:calc(@width); |
|
} |
|
.border-radius(@raidus){ |
|
-webkit-border-radius: @raidus; |
|
-moz-border-radius: @raidus; |
|
border-radius: @raidus; |
|
} |
|
.box-shadow(@shadow){ |
|
-moz-box-shadow:@shadow; |
|
-webkit-box-shadow:@shadow; |
|
-o-box-shadow: @shadow; |
|
box-shadow:@shadow; |
|
} |
|
.box-sizing(@sizing){ |
|
-webkit-box-sizing: @sizing; |
|
-moz-box-sizing: @sizing; |
|
box-sizing:@sizing; |
|
} |
|
//此属性可放置多个参数 |
|
.text-shadow(...){ |
|
-webkit-text-shadow: @arguments; |
|
-moz-text-shadow: @arguments; |
|
text-shadow: @arguments; |
|
} |
|
.transition(@transition){ |
|
-webkit-transition:@transition; |
|
-moz-transition:@transition; |
|
-o-transition:@transition; |
|
-ms-transition:@transition; |
|
transition:@transition; |
|
} |
|
.transform(@transform){ |
|
-webkit-transform: @transform; |
|
-moz-transform: @transform; |
|
-o-transform: @transform; |
|
-ms-transform: @transform; |
|
transform:@transform; |
|
} |
|
.animation(@animation){ |
|
-webkit-animation: @animation; |
|
-moz-animation: @animation; |
|
-o-animation: @animation; |
|
animation: @animation; |
|
} |
|
.user-select(@select){ |
|
-moz-user-select:@select; |
|
-webkit-user-select:@select; |
|
-o-user-select:@select; |
|
-ms-user-select:@select; |
|
-khtml-user-select: @select; |
|
user-select:@select; |
|
} |
|
|
|
//gradient开始 |
|
//相反方向 |
|
@top_opposite:bottom; |
|
@bottom_opposite:top; |
|
@left_opposite:right; |
|
@right_opposite:left; |
|
.opposite(@origin) when (length(@origin)=1) and (isstring(@origin)){ |
|
@opposite:~"@{@{origin}_opposite}"; |
|
@to_opposite:~"to @{opposite}"; |
|
} |
|
.opposite(@origin) when (length(@origin)=1) and (isnumber(@origin)) and(@origin<180){ |
|
@opposite:@origin+180; |
|
@to_opposite:@origin; |
|
} |
|
.opposite(@origin) when (length(@origin)=1) and (isnumber(@origin)) and(@origin>=180){ |
|
@opposite:@origin+(-180); |
|
@to_opposite:@origin; |
|
} |
|
.opposite(@origin) when (length(@origin)=2) and ("@{origin}"="left top"){ |
|
@opposite:~"right bottom"; |
|
@to_opposite:~"to @{opposite}"; |
|
} |
|
.opposite(@origin) when (length(@origin)=2) and ("@{origin}"="left bottom"){ |
|
@opposite:~"right top"; |
|
@to_opposite:~"to @{opposite}"; |
|
} |
|
.opposite(@origin) when (length(@origin)=2) and ("@{origin}"="right top"){ |
|
@opposite:~"left bottom"; |
|
@to_opposite:~"to @{opposite}"; |
|
} |
|
.opposite(@origin) when (length(@origin)=2) and ("@{origin}"="right bottom"){ |
|
@opposite:~"left top"; |
|
@to_opposite:~"to @{opposite}"; |
|
} |
|
.gradient (@origin:top, @start, @stop) { |
|
.opposite(@origin); |
|
background-color: mix(@start,@stop); |
|
background-image: -webkit-linear-gradient(@origin, @start, @stop); |
|
background-image: -webkit-gradient(linear, @origin, @opposite, from(@start), to(@stop)); |
|
background-image: -moz-linear-gradient(@origin, @start, @stop); |
|
background-image: -o-linear-gradient(@origin, @start, @stop); |
|
background-image: -ms-linear-gradient(@origin, @start, @stop); |
|
background-image: linear-gradient(@to_opposite, @start, @stop); |
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=@start, endColorstr=@stop, GradientType=0); |
|
} |
|
//gradient结束 |
|
|
|
|
|
//只支持单属性opacity的动画定义 |
|
.keyframes-opacity(10,@value) when (@value<=1){ |
|
@indicate:percentage(@value); |
|
@{indicate} { |
|
opacity: @value; |
|
} |
|
.keyframes-opacity(10,@value+0.1); |
|
} |
|
//只支持单属性 |
|
.keyframs(2,@prop,@start,@end){ |
|
0%{ |
|
@{prop}:@start; |
|
} |
|
100%{ |
|
@{prop}:@end; |
|
} |
|
} |
|
|
|
//复合样式的minix |
|
/*下面的全部作废,为项目中大多数是设了部分属性,如`margin-top`和`margin-right`,但如果用了此`minix`, |
|
会造成多了`margin-bottom`和`margin-left`属性,即使他们设的是默认属性。这样很不好,如果要修改这个`minix`, |
|
由于`less`中的判断只有`when`关键字,所以要写11条(怎么算出来的:$C_4^2+C_4^3+1$)的判断,很麻烦,所以废弃。 |
|
后面会有`sass`的方法,完美解决这个问题**/ |
|
.margin(@top:0;@right:0;@bottom:0;@left:0){ |
|
margin-top: @top; |
|
margin-right: @right; |
|
margin-bottom: @bottom; |
|
margin-left: @left; |
|
} |
|
.padding(@top:0;@right:0;@bottom:0;@left:0){ |
|
padding-top: @top; |
|
padding-right: @right; |
|
padding-bottom: @bottom; |
|
padding-left: @left; |
|
} |
|
//border没有默认值,这儿默认成none |
|
.border(@top:none;@right:none;@bottom:none;@left:none){ |
|
border-top: @top; |
|
border-right: @right; |
|
border-bottom: @bottom; |
|
border-left: @left; |
|
} |
|
.borderRadius(@left_top:0;@right_top:0;@left_bottom:0;@right_bottom:0){ |
|
border-top-left-radius:@left_top; |
|
border-top-right-radius:@right_top; |
|
border-bottom-left-radius:@left_bottom; |
|
border-bottom-right-radius:@right_bottom; |
|
} |
|
//border-color没有默认值,这儿默认成transparent |
|
.borderColor(@top-color:transparent;@right-color:transparent;@bottom-color:transparent;@left-color:transparent){ |
|
border-top-color:@top-color; |
|
border-right-color:@right-color; |
|
border-bottom-color:@bottom-color; |
|
border-left-color:@left-color; |
|
} |
|
|
|
//公共的minix结束------------------------------------------------------------------------------------------- |