实现交互逻辑。
当前位置:首页 > CSS

css开关按钮制作

2026-03-12 05:12:27CSS

基本HTML结构

创建一个简单的开关按钮需要HTML和CSS配合。HTML部分通常使用<label><input type="checkbox">实现交互逻辑。

<label class="switch">
  <input type="checkbox">
  <span class="slider"></span>
</label>

基础CSS样式

通过CSS隐藏原生复选框,并自定义滑动条和背景样式。

.switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

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

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

添加选中状态

当复选框被选中时,改变滑动条背景和位置。

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

input:checked + .slider:before {
  transform: translateX(26px);
}

添加禁用状态

通过:disabled选择器为不可用状态添加样式。

input:disabled + .slider {
  opacity: 0.5;
  cursor: not-allowed;
}

方形开关变体

将圆角改为直角即可实现方形开关。

.square .slider {
  border-radius: 0;
}

.square .slider:before {
  border-radius: 0;
}

小尺寸开关

通过调整尺寸参数实现更小的开关。

.small-switch {
  width: 40px;
  height: 22px;
}

.small-switch .slider:before {
  height: 16px;
  width: 16px;
}

.small-switch input:checked + .slider:before {
  transform: translateX(18px);
}

动画效果增强

添加缩放动画使交互更生动。

.slider:active:before {
  transform: scale(1.2);
}

input:checked + .slider:active:before {
  transform: translateX(26px) scale(1.2);
}

自定义颜色方案

通过CSS变量实现主题色快速更换。

:root {
  --switch-on: #4CAF50;
  --switch-off: #f44336;
}

.custom .slider {
  background-color: var(--switch-off);
}

.custom input:checked + .slider {
  background-color: var(--switch-on);
}

图标开关

在滑块上添加图标指示状态。

css开关按钮制作

.icon-switch .slider:after {
  content: "✖";
  position: absolute;
  right: 8px;
  top: 3px;
  color: white;
}

.icon-switch input:checked + .slider:after {
  content: "✓";
  left: 8px;
  right: auto;
}

标签: 按钮css
分享给朋友:

相关文章

vue实现按钮

vue实现按钮

Vue 实现按钮的方法 使用原生 HTML 按钮 在 Vue 模板中可以直接使用 HTML 的 <button> 元素,通过 v-on 或 @ 绑定点击事件。 <template&…

css制作菜单

css制作菜单

水平菜单制作 使用display: inline-block或flexbox布局创建水平菜单。设置list-style: none移除默认列表样式,添加padding和margin调整间距。 <…

css精灵图制作

css精灵图制作

CSS 精灵图制作方法 准备工具 图像编辑软件(如 Photoshop、GIMP 或在线工具) CSS 代码编辑器 步骤 收集图像资源 将需要合并的小图标或图片整理到一个文件夹中,确保这些图片尺寸…

css制作六边形

css制作六边形

使用CSS创建六边形的方法 通过CSS的clip-path属性可以轻松实现六边形效果。以下是一个基础示例: .hexagon { width: 100px; height: 55px;…

css制作圆

css制作圆

使用CSS制作圆形元素 通过CSS的border-radius属性可以轻松将元素变为圆形。以下是具体实现方法: 基本圆形实现 .circle { width: 100px; height:…

淘宝css导航栏制作

淘宝css导航栏制作

淘宝CSS导航栏制作 制作类似淘宝的导航栏需要关注几个关键点:结构清晰、响应式设计、悬停效果以及图标使用。以下是具体实现方法: HTML结构 <div class="nav-container…