You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一页面制作两个自定义颜色的slide toggle滑动切换开关

同一页面创建两个自定义颜色的Slide Toggle开关实现方法

实现思路

用原生HTML的checkbox控件作为状态核心(自带选中/未选中状态),通过CSS完全自定义外观,给每个开关单独设置类名来区分自定义颜色,无需依赖外部框架。

代码实现

HTML结构

<!-- 第一个自定义颜色的开关(绿色系) -->
<div class="slide-toggle toggle-green">
  <input type="checkbox" id="toggle1">
  <label for="toggle1" class="toggle-slider"></label>
</div>

<!-- 第二个自定义颜色的开关(蓝色系) -->
<div class="slide-toggle toggle-blue">
  <input type="checkbox" id="toggle2">
  <label for="toggle2" class="toggle-slider"></label>
</div>

CSS样式

/* 基础开关样式重置与通用结构 */
.slide-toggle {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
  margin: 0 10px;
}

.slide-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
}

.toggle-slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 34px;
  transition: .4s;
}

/* 未选中状态的背景色 */
.toggle-green .toggle-slider,
.toggle-blue .toggle-slider {
  background-color: #ccc;
}

/* 选中状态的自定义背景色 */
.toggle-green input:checked + .toggle-slider {
  background-color: #4CAF50;
}

.toggle-blue input:checked + .toggle-slider {
  background-color: #2196F3;
}

/* 滑块样式 */
.toggle-slider:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  border-radius: 50%;
  transition: .4s;
}

/* 选中时滑块移动位置 */
input:checked + .toggle-slider:before {
  transform: translateX(26px);
}

说明

  • 每个开关通过独立的类(toggle-green、toggle-blue)控制自定义颜色,你可以随意修改background-color的值来调整开关的激活态颜色
  • 基础样式里的宽度、高度、滑块大小都可以根据需求调整
  • 纯CSS实现,无需额外JavaScript,状态由原生checkbox维护,兼容性好

内容的提问来源于stack exchange,提问作者Sachin kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 10:03:24