Yo : ./lib/widget/yo-tip.scss
源代码
源代码
@charset "utf-8"; // 定义浮层tip的基础构造 @mixin _tip { position: fixed; min-width: 1rem; max-width: 90%; z-index: map-get($z-index, tip); padding: map-get($tip, padding); border-radius: map-get($tip, radius); background-color: map-get($tip, bgcolor); color: map-get($tip, color); text-align: center; > .arrow { position: absolute; content: "\0020"; border-width: map-get($tip, arrow-size); border-style: solid; border-color: transparent; &-top { top: -#{map-get($tip, arrow-size) * 2}; border-bottom-color: map-get($tip, bgcolor); } &-right { right: -#{map-get($tip, arrow-size) * 2}; border-left-color: map-get($tip, bgcolor); } &-bottom { bottom: -#{map-get($tip, arrow-size) * 2}; border-top-color: map-get($tip, bgcolor); } &-left { left: -#{map-get($tip, arrow-size) * 2}; border-right-color: map-get($tip, bgcolor); } } } /** * @module widget * @method yo-tip * @version 1.0.0 * @description 构造列表的自定义使用方法 * @demo http://doyoe.github.io/Yo/demo/widget/yo-tip.html * @param {String} $name 定义扩展名称 <1.0.0> * @param {Length} $padding 内补白 <1.0.0> * @param {Length} $radius 圆角半径长度 <1.0.0> * @param {Color} $bgcolor 背景色 <1.0.0> * @param {Color} $color 文本色 <1.0.0> * @param {Length} $arrow-size 箭头大小 <2.1.1> */ @mixin yo-tip( $name: default, $padding: default, $radius: default, $bgcolor: default, $color: default, $arrow-size: default) { // 区别是否新增实例还是修改本身 $name: if($name == default, "", "-#{$name}"); // 如果值为default,则取config的定义 @if $padding == default { $padding: map-get($tip, padding); } @if $radius == default { $radius: map-get($tip, radius); } @if $bgcolor == default { $bgcolor: map-get($tip, bgcolor); } @if $color == default { $color: map-get($tip, color); } @if $arrow-size == default { $arrow-size: map-get($tip, arrow-size); } .yo-tip#{$name} { @if $padding != map-get($tip, padding) { padding: $padding; } @if $radius != map-get($tip, radius) { border-radius: $radius; } @if $bgcolor != map-get($tip, bgcolor) { background-color: $bgcolor; } @if $color != map-get($tip, color) { color: $color; } > .arrow { @if $arrow-size != map-get($tip, arrow-size) { border-width: $arrow-size; } &-top { @if $arrow-size != map-get($tip, arrow-size) { top: -#{$arrow-size * 2}; } @if $bgcolor != map-get($tip, bgcolor) { border-bottom-color: $bgcolor; } } &-right { @if $arrow-size != map-get($tip, arrow-size) { right: -#{$arrow-size * 2}; } @if $bgcolor != map-get($tip, bgcolor) { border-left-color: $bgcolor; } } &-bottom { @if $arrow-size != map-get($tip, arrow-size) { bottom: -#{$arrow-size * 2}; } @if $bgcolor != map-get($tip, bgcolor) { border-top-color: $bgcolor; } } &-left { @if $arrow-size != map-get($tip, arrow-size) { left: -#{$arrow-size * 2}; } @if $bgcolor != map-get($tip, bgcolor) { border-right-color: $bgcolor; } } } // 增量扩展 @content; } } // 调用本文件时载入tip基础构造 .yo-tip { @include _tip; }