uni-events-helper-wx
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

164 lines
4.4 KiB

// flex(主轴,交叉轴,方向,换行,多轴线对齐)
@mixin flex($justify: null, $align: null, $direction: null, $warp: null, $warpAlign: null) {
display: flex;
@if $direction != null {
@include flex-direction($direction);
}
@if $justify != null {
@include flex-justify($justify);
}
@if $align != null {
@include flex-align($align);
}
@if $warp != null {
@include flex-warp($warp);
}
@if $warpAlign != null {
@include flex-warpAlign($warpAlign);
}
}
// flex-self(对齐,(布满||固定),顺序)
@mixin flex-self($flex: null, $align: null, $order: null){
@if $flex != null {
@if $flex == full {
flex: auto;
} @else if $flex == keep {
flex: none;
} @else {
@include flexError($flex, 'flex-self');
}
}
@if $align != null {
@include flex-selfAlign($align);
}
@if $order != null {
@include flex-order($order);
}
}
// flex错误提示
@mixin flexError($param, $type) {
position: relative;
background-color: #ff3c00 !important;
overflow: hidden;
&::after {
position: absolute;
bottom: 0;
right: 0;
padding: 0.5em;
color: #ff3c00 !important;
background-color: white !important;
font-size: 12px;
content: 'ErrorParam: #{$param} in #{$type}';
}
}
// 项目的排列方向
@mixin flex-direction($direction: row) {
@if $direction == column {
flex-direction: column;
} @else if $direction == row {
flex-direction: row;
} @else if $direction == row-reverse {
flex-direction: row-reverse;
} @else if $direction == column-reverse {
flex-direction: column-reverse;
} @else {
@include flexError($direction, 'flex-direction');
}
}
// 主轴上的对齐方式
@mixin flex-justify($justify: start) {
@if $justify == start {
justify-content: start;
} @else if $justify == center {
justify-content: center;
} @else if $justify == end {
justify-content: flex-end;
} @else if $justify == between {
justify-content: space-between;
} @else if $justify == around {
justify-content: space-around;
} @else {
@include flexError($justify, 'flex-justify');
}
}
// 交叉轴上的对齐方式
@mixin flex-align($align: top) {
@if $align == top {
align-items: flex-start;
} @else if $align == center {
align-items: center;
} @else if $align == bottom {
align-items: flex-end;
} @else {
@include flexError($align, 'flex-align');
}
}
// 换行
@mixin flex-warp($warp: wrap) {
@if $warp == wrap {
flex-wrap: wrap;
} @else if $warp == nowrap {
flex-wrap: nowrap;
} @else if $warp == wrap-reverse {
flex-wrap: wrap-reverse;
} @else {
@include flexError($warp, 'flex-wrap');
}
}
// 换行多根轴线的对齐方式,如果项目只有一根轴线,该属性不起作用
@mixin flex-warpAlign($align: stretch) {
@if $align == stretch {
align-content: stretch;
} @else if $align == top {
align-content: flex-start;
} @else if $align == center {
align-content: center;
} @else if $align == bottom {
align-content: flex-end;
} @else if $align == between {
align-content: space-between;
} @else if $align == around {
align-content: space-around;
} @else {
@include flexError($align, 'flex-wrapAlign');
}
}
// 单个项目有与其他项目不一样的对齐方式
@mixin flex-selfAlign($align: auto){
@if $align == auto {
align-self: auto;
} @else if $align == top {
align-self: flex-start;
} @else if $align == center {
align-self: center;
} @else if $align == bottom {
align-self: flex-end;
} @else if $align == baseline {
align-self: baseline ;
} @else if $align == stretch {
align-self: stretch;
} @else {
@include flexError($align, 'flex-self-align');
}
}
// 项目的排列顺序,数值越小,排列越靠前,默认为0
@mixin flex-order($order: 0){
@if $order == round($order) {
order: $order;
} @else {
@include flexError($order, 'flex-self-order');
}
}