当前位置:首页 > CSS

css制作开关按钮

2026-02-13 08:42:50CSS

使用纯CSS制作开关按钮

通过CSS的checkbox hack技术可以实现无需JavaScript的开关按钮。核心思路是利用<input type="checkbox"><label>元素的联动效果。

<label class="switch">
  <input type="checkbox">
  <span class="slider"></span>
</label>
.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);
}

添加动画效果

通过CSS过渡属性可以增强交互体验:

.slider {
  transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

input:focus + .slider {
  box-shadow: 0 0 1px #2196F3;
}

不同样式变体

方形开关按钮只需修改边框半径:

.slider.rect {
  border-radius: 4px;
}

.slider.rect:before {
  border-radius: 2px;
}

禁用状态处理

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

尺寸调整技巧

使用CSS变量实现灵活尺寸控制:

.switch {
  --switch-width: 60px;
  --switch-height: 34px;
  --slider-size: calc(var(--switch-height) - 8px);
  width: var(--switch-width);
  height: var(--switch-height);
}

.slider:before {
  width: var(--slider-size);
  height: var(--slider-size);
}

input:checked + .slider:before {
  transform: translateX(calc(var(--switch-width) - var(--slider-size) - 8px));
}

响应式设计考虑

结合媒体查询适应不同设备:

css制作开关按钮

@media (max-width: 768px) {
  .switch {
    --switch-width: 50px;
    --switch-height: 28px;
  }
}

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

相关文章

css制作表单

css制作表单

使用CSS制作表单的基本方法 创建一个美观且功能完善的表单需要结合HTML结构和CSS样式。以下是关键步骤和示例代码: HTML基础结构 <form class="my-form">…

css制作钢琴块

css制作钢琴块

使用CSS制作钢琴块 钢琴块可以通过HTML和CSS的配合实现,主要利用flexbox布局和伪元素来模拟钢琴的黑白键排列。 HTML结构 <div class="piano"> &l…

css制作tab菜单

css制作tab菜单

CSS制作Tab菜单的方法 HTML结构 使用无序列表和div容器构建基础结构,列表项为标签页标题,div内放置对应内容块。 <ul class="tab-menu"> <li…

友情链接css制作

友情链接css制作

友情链接CSS制作 友情链接是网站之间互相推广的一种方式,通常以文字或图片形式展示。通过CSS可以美化友情链接的样式,使其更符合网站整体设计风格。 文字链接样式 设置文字链接的基础样式,包括颜色、…

css制作锁屏页面

css制作锁屏页面

使用CSS制作锁屏页面 锁屏页面通常包含一个背景、时间显示以及可能的解锁按钮或输入框。以下是实现锁屏页面的关键CSS代码和结构。 HTML结构 <!DOCTYPE html> <…

制作css表格

制作css表格

基础CSS表格结构 使用HTML的<table>标签创建表格骨架,搭配CSS控制样式。以下是一个基础示例: <table class="styled-table"> &l…