首页 > 其他分享 >自定义开关(switch)

自定义开关(switch)

时间:2024-12-30 13:07:41浏览次数:1  
标签:自定义 -- custom padding 开关 switch btnSize var

演示代码

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>custom_switch</title>
  </head>
  <style>
    /** 开关 */
    .custom_switch {
      --switch-padding: 3px;
      --btnSize: 20px;
      --animation: all 0.3s;
      display: inline-flex;
      align-items: center;
      padding: var(--switch-padding);
      background-color: #ccc;
      color: #fff;
      border-radius: calc(var(--btnSize) + var(--switch-padding) * 2);
      cursor: pointer;
      user-select: none;
      font-family: Helvetica;
      line-height: var(--btnSize);
      transition: var(--animation);
      position: relative;
      padding-left: calc(var(--btnSize) + var(--switch-padding));
    }
    /** 开关-按钮 */
    .custom_switch::before {
      content: "";
      width: var(--btnSize);
      height: var(--btnSize);
      background-color: #fff;
      border-radius: 50%;
      position: absolute;
      left: var(--switch-padding);
      transition: var(--animation);
    }
    /** 开关-文本 */
    .custom_switch::after {
      content: attr(data-inactive);
      padding: 0 5px;
    }
    /** 开关-激活 */
    .custom_switch.active {
      background-color: #5a76ff;
      padding-left: var(--switch-padding);
      padding-right: calc(var(--btnSize) + var(--switch-padding));
    }
    /** 开关-激活-按钮 */
    .custom_switch.active::before {
      left: calc(100% - var(--btnSize) - var(--switch-padding));
    }
    /** 开关-激活-文本 */
    .custom_switch.active::after {
      content: attr(data-active);
    }
  </style>
  <body>
    <div class="custom_switch" data-active="启用" data-inactive="禁用"></div>
    <div class="custom_switch active" data-active="启用" data-inactive="不启用"></div>
  </body>
  <script>
    document.querySelectorAll(".custom_switch").forEach((item) => {
      item.addEventListener("click", () => {
        item.classList.toggle("active");
      });
    });
    // }, 1000);
  </script>
</html>

纯净样式

/** 开关 */
.custom_switch {
  --switch-padding: 3px;
  --btnSize: 20px;
  --animation: all 0.3s;
  display: inline-flex;
  align-items: center;
  padding: var(--switch-padding);
  background-color: #ccc;
  color: #fff;
  border-radius: calc(var(--btnSize) + var(--switch-padding) * 2);
  cursor: pointer;
  user-select: none;
  font-family: Helvetica;
  line-height: var(--btnSize);
  transition: var(--animation);
  position: relative;
  padding-left: calc(var(--btnSize) + var(--switch-padding));
}
/** 开关-按钮 */
.custom_switch::before {
  content: "";
  width: var(--btnSize);
  height: var(--btnSize);
  background-color: #fff;
  border-radius: 50%;
  position: absolute;
  left: var(--switch-padding);
  transition: var(--animation);
}
/** 开关-文本 */
.custom_switch::after {
  content: attr(data-inactive);
  padding: 0 5px;
}
/** 开关-激活 */
.custom_switch.active {
  background-color: #5a76ff;
  padding-left: var(--switch-padding);
  padding-right: calc(var(--btnSize) + var(--switch-padding));
}
/** 开关-激活-按钮 */
.custom_switch.active::before {
  left: calc(100% - var(--btnSize) - var(--switch-padding));
}
/** 开关-激活-文本 */
.custom_switch.active::after {
  content: attr(data-active);
}

使用方法

<div class="custom_switch" data-active="启用" data-inactive="禁用"></div>
<div class="custom_switch active" data-active="启用" data-inactive="不启用"></div>
<!-- 
默认开关为关闭状态,通过切换class切换状态
class="active" 开关为开启状态
data-active="开启状态文本" 开关为开启状态时的文本
data-inactive="关闭状态文本" 开关为关闭状态时的文本
 -->

效果

标签:自定义,--,custom,padding,开关,switch,btnSize,var
From: https://www.cnblogs.com/dkf717/p/18640802

相关文章

  • C语言自定义类型
    构造类型数据类型基本类型/基础类型整数类型短整型:short/shortint(2字节)整型:int(4字节)长整型:long/longint(8字节(64位系统))长长整型:longlong/longlongint(16字节)浮点型单精度:float(4字节)双精度:double(8字节)长双精度:longdouble(16字节(64位......
  • C语言自定义类型与文件操作
    构造类型枚举类型若定义不相关的常量使用宏定义;若定义一组相关的常量使用枚举。switch中case后访问的就是枚举。定义:我们一般情况下定义常量使用宏定义(#define),宏定义适合没有关联关系的常量;但有时需要对一组有关联关系的量进行定义,例如:星期、月份、方向(上下左右中)......
  • switch
    switch基础库1.0.0开始支持,低版本需做兼容处理。微信Windows版:支持微信Mac版:支持微信鸿蒙OS版:支持渲染框架支持情况:Skyline(使用最新Nighly工具调试)、WebView功能描述开关选择器。属性说明属性类型默认值必填说明最低版本checkedbooleanfa......
  • 学习012-02-04 Customize Controllers and Actions(自定义控制器和操作)
    CustomizeControllersandActions(自定义控制器和操作)ToimplementanewfeatureintheXAF,createanewController.Ifthefeaturerequiresend-userinteraction,addActionstoit.Atthesametime,youmayneedtocustomizeaControllerorActionprovi......
  • Android 13自定义添加模块文件编译到img镜像中
    前言全局说明一、说明1.1环境:Android131.2约定$Android#代表Android源码根目录,就是有build、system、vendor那些目录的同级目录。二、新建模块2.1新建模块文件夹在$Android安卓根目录建立你想要的目录,这里以custom_files名字为例,文件夹名根据项目需要修......
  • 使用css3实现一个滑动开关
    创建一个滑动开关(toggleswitch)可以使用纯CSS3,主要利用伪类、复选框(checkbox)和一些基础的CSS样式。以下是一个简单的示例:HTML部分:<labelclass="switch"><inputtype="checkbox"id="toggle"><spanclass="slider"></span></label>......
  • 自定义GatewayFilter
    自定义GatewayFilter的方式1、继承AbstractGatewayfilterfactory,自行提供承载配置的类以及配置加载后和配置字段对应的问题【参考自定义断言工厂实现】2、继承AbstractNameValueGatewayfilterFactory,针对Name-Value结构的配置处理默认处理好了,拿来即用通过实现GatewayFilterFa......
  • vue自定义标签模板
    resume-template参考博客https://blog.csdn.net/yangyiboshigou/article/details/72239844参考代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><titl......
  • 自定义Menu组件
    自定义Menu组件第一步:定义propsMenuProps接口定义了Menu组件接收的props,包括默认高亮项、样式、模式、选择项的回调函数和子组件。exportinterfaceMenuProps{defaultIndex?:number;//高亮className?:string;mode:MenuMode;//纵向横向s......
  • 7-Gin 中自定义控制器 --[Gin 框架入门精讲与实战案例]
    在Gin框架中,"控制器"通常指的是处理HTTP请求的逻辑。虽然Gin本身没有像一些其他框架(例如Django或RubyonRails)那样明确地定义"控制器"的概念,但你可以通过组织代码来实现类似的功能。Gin使用路由组和中间件来帮助组织你的应用程序逻辑。为了创建自定义控制器,你......