美文网首页
样式(5) -- checkbox5

样式(5) -- checkbox5

作者: 卡拉咖啦 | 来源:发表于2019-10-20 21:00 被阅读0次

preview

demo预览

checkbox4

description

1.可自定义:
按钮大小 : $checkboxSize,支持 rem, vw, px ; 不支持 em;
宽高比 : $checkboxWidthTimes
文本大小占比 : $checkboxFontSizeTimes
动画时长 : $switchingTimeCost
按钮文本 : $checkboxTextForOFF / $checkboxTextForON
主题颜色 : $checkboxColorForOFF / $checkboxColorForON / $checkboxFontColor
border-radius : $checkboxBorderRadiusSize

2.注意事项:
3d 效果的 perspective 要设置在动画元素的父级(这里是 label 元素);并且,在 label 元素上设置 overflow: hidden 会导致 perspective 无效。

scss

/* html
<div class="checkboxWrapper">
    <input type="checkbox" value="" id="slideID" name="slide" checked>
    <label for="slideID"></label>
</div>
*/


* { padding: 0; margin: 0; box-sizing: border-box; }
*::before, *::after{ box-sizing: border-box; }

body {
  margin: 30px;
}

$checkboxSize: 30px;
$checkboxWidthTimes: 2.0;
$checkboxFontSizeTimes: 0.6;
$checkboxBackgroundColorForOFF: #7FC6A6;
$checkboxBackgroundColorForON: #FF3A19;
$checkboxTextForON: "OFF";
$checkboxTextForOFF: "ON";
$checkboxBorderRadiusSize: 5px;
$switchingTimeCost: 0.2s;
$checkboxFontColor: #fff;

$checkboxFontSize: $checkboxSize * $checkboxFontSizeTimes;
$checkboxWidth: $checkboxWidthTimes * $checkboxSize;

.checkboxWrapper {
  input {
    display: none;
    &:checked + label {
      &::before {
        transform: rotateY(180deg);
      }
      &::after {
        transform: rotateY(0deg);
      }
    }
  }

  & label {
    display: block;
    width: $checkboxWidth;
    height: $checkboxSize;
    perspective: 100px;
    line-height: $checkboxSize;
    text-align: center;
    position: relative;

    &::before, &::after{
      content: $checkboxTextForON;
      display: block;
      width: $checkboxWidth;
      height: $checkboxSize;
      background-color: $checkboxBackgroundColorForON;
      font-size: $checkboxFontSize;
      font-weight: bold;
      color: $checkboxFontColor;
      transform: rotateY(0deg);
      transition: all $switchingTimeCost ease;
      backface-visibility: hidden;
      border-radius: $checkboxBorderRadiusSize;
      position: absolute;
      top: 0;
      left: 0;
    }

    &::after {
      content: $checkboxTextForOFF;
      transform: rotateY(-180deg);
      background-color: $checkboxBackgroundColorForOFF;
    }
  }
}

相关文章

  • 样式(5) -- checkbox5

    preview demo预览 description 1.可自定义:按钮大小 : $checkboxSize,支持...

  • js高级程序设计20

    样式 1.访问元素样式 2.DOM样式属性和方法 5.计算样式

  • react-native样式表写法

    1.内嵌样式 2.对象样式 3.内部样式 4.外部样式 5.混合样式

  • 样式层次

    由高到低 : 缺省样式(浏览器内置样式) -> 内敛样式 (style 属性) -> 嵌入页面样式 5. 外联...

  • 2018-11-20

    样式层叠次序:1.元素内嵌样式2.文档内嵌样式3.外部样式4.用户样式5.浏览器样式在样式属性值后面附上!impo...

  • tp5 分页样式

    tp5 分页样式css

  • day03

    A.今天学到什么 1.文本修饰 1.1文本样式 1.2文本字体 2.链接 3.列表样式 4.边框样式 5.表格 5...

  • 康耐尔笔记法精髓2018-03-29

    一、笔记样式 二、精华5步

  • 【Vue3 从入门到实战 进阶式掌握完整知识体系】005-Vue

    5、样式绑定语法 通过动态绑定 class 属性来控制样式的展示 运行结果 通过 class 对象来控制样式的展示...

  • WXSS

    1.自适应单位rpx 2.支持的选择器 3.行间样式 4.引入其他文件的样式 5.全局样式与局部样式 1 .全局样...

网友评论

      本文标题:样式(5) -- checkbox5

      本文链接:https://www.haomeiwen.com/subject/cfmamctx.html