Yo 源文件
Yo 是一款基于 Mobile First 理念而设计的 CSS Framework,当然,它也适应于PC端的高级浏览器;其具备轻量,易用,快速且高度强大的自定义能力
Yo 是一款基于 Mobile First 理念而设计的 CSS Framework,当然,它也适应于PC端的高级浏览器;其具备轻量,易用,快速且高度强大的自定义能力
@charset "utf-8"; @import "../element/yo-btn"; // 定义btnbar的基础构造 @mixin _btnbar { display: inline-block; vertical-align: middle; > .yo-btn { float: left; &:not(:first-child) { margin-left: -.01rem !important; } &::after { z-index: auto; } &:first-child { &, &::after { // 如果按钮有圆角,那么去掉第一个按钮的右侧圆角 @if map-get($btn, radius) != 0 { border-top-right-radius: 0; border-bottom-right-radius: 0; } } // 如果工具栏定义了圆角,那么不管按钮有没有左侧圆角,都重绘 @if map-get($btnbar, radius) != null and map-get($btnbar, radius) != map-get($btn, radius) { border-top-left-radius: map-get($btnbar, radius); border-bottom-left-radius: map-get($btnbar, radius); &::after { @include responsive(retina1x) { border-top-left-radius: map-get($btnbar, radius); border-bottom-left-radius: map-get($btnbar, radius); } @include responsive(retina2x) { border-top-left-radius: map-get($btnbar, radius) * 2; border-bottom-left-radius: map-get($btnbar, radius) * 2; } @include responsive(retina3x) { border-top-left-radius: map-get($btnbar, radius) * 3; border-bottom-left-radius: map-get($btnbar, radius) * 3; } } } } &:last-child { &, &::after { // 如果按钮有圆角,那么去掉最后一个按钮的左侧圆角 @if map-get($btn, radius) != 0 { border-top-left-radius: 0; border-bottom-left-radius: 0; } } // 如果工具栏定义了圆角,那么不管按钮有没有右侧圆角,都重绘 @if map-get($btnbar, radius) != null and map-get($btnbar, radius) != map-get($btn, radius) { border-top-right-radius: map-get($btnbar, radius); border-bottom-right-radius: map-get($btnbar, radius); &::after { @include responsive(retina1x) { border-top-right-radius: map-get($btnbar, radius); border-bottom-right-radius: map-get($btnbar, radius); } @include responsive(retina2x) { border-top-right-radius: map-get($btnbar, radius) * 2; border-bottom-right-radius: map-get($btnbar, radius) * 2; } @include responsive(retina3x) { border-top-right-radius: map-get($btnbar, radius) * 3; border-bottom-right-radius: map-get($btnbar, radius) * 3; } } } } &:not(:first-child):not(:last-child){ &, &::after { // 如果按钮有圆角,那么清除中间所有按钮的圆角 @if map-get($btn, radius) != 0 { border-radius: 0; } } } } } /** * @module fragment * @method yo-btnbar * @version 1.0.0 * @description 构造按钮组的自定义使用方法 * @demo http://doyoe.github.io/Yo/demo/fragment/yo-btnbar.html * @param {String} $name 定义扩展名称 {add:1.0.0} * @param {Length} $radius 圆角半径长度 {add:1.0.0} */ @mixin yo-btnbar( $name: default, $radius: default) { // 区别是否新增实例还是修改本身 $name: if($name == default, "", "-#{$name}"); // 如果值为default,则取config的定义 @if $radius == default { $radius: map-get($btnbar, radius); } .yo-btnbar#{$name} { > .yo-btn { // 如果工具栏定义了圆角且不等于config定义,则重绘圆角半径 @if $radius != null and $radius != map-get($btnbar, radius) { &:first-child { border-top-left-radius: $radius; border-bottom-left-radius: $radius; &::after { @include responsive(retina1x) { border-top-left-radius: $radius; border-bottom-left-radius: $radius; } @include responsive(retina2x) { border-top-left-radius: $radius * 2; border-bottom-left-radius: $radius * 2; } @include responsive(retina3x) { border-top-left-radius: $radius * 3; border-bottom-left-radius: $radius * 3; } } } &:last-child { border-top-right-radius: $radius; border-bottom-right-radius: $radius; &::after { @include responsive(retina1x) { border-top-right-radius: $radius; border-bottom-right-radius: $radius; } @include responsive(retina2x) { border-top-right-radius: $radius * 2; border-bottom-right-radius: $radius * 2; } @include responsive(retina3x) { border-top-right-radius: $radius * 3; border-bottom-right-radius: $radius * 3; } } } } } // 增量扩展 @content; } } // 调用本文件时载入btnbar基础构造 .yo-btnbar { @include _btnbar; }