当前位置:首页 > CSS

css制作开关

2026-03-31 22:26:01CSS

使用纯CSS制作开关

通过CSS的checkbox hack技术实现开关效果,无需JavaScript。以下是完整代码示例:

<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.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.slider:before {
  transition: all 0.3s ease-in-out;
}

不同样式变体

创建圆形开关样式:

.slider.round {
  border-radius: 34px;
}

.slider.round:before {
  border-radius: 50%;
}

方形开关样式:

css制作开关

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

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

禁用状态样式

添加禁用状态的视觉效果:

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

尺寸调整

通过CSS变量控制开关大小:

.switch {
  --size: 34px;
  width: calc(var(--size) * 1.75);
  height: var(--size);
}

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

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

标签: css
分享给朋友:

相关文章

css制作图标

css制作图标

使用CSS制作图标的方法 使用伪元素和边框 通过CSS的::before和::after伪元素结合border属性可以创建简单的几何形状图标。例如制作一个三角形: .triangle { w…

css制作三行三列表格

css制作三行三列表格

使用HTML和CSS创建三行三列表格 通过HTML的<table>标签结合CSS样式可以轻松实现三行三列的表格结构。 <table class="three-by-three"&g…

网页制作 css

网页制作 css

CSS 基础语法 CSS(层叠样式表)用于控制网页的样式和布局。基本语法由选择器和声明块组成。选择器指向需要样式化的HTML元素,声明块包含一个或多个用分号分隔的声明,每个声明由属性和值组成。 选择…

css制作导航栏

css制作导航栏

水平导航栏 使用 display: inline-block 或 flexbox 创建水平导航栏是最常见的方法。 <nav class="horizontal-nav"> <u…

css制作箭头

css制作箭头

使用边框制作箭头 通过设置元素的 border 属性,利用透明边框和实色边框的组合生成箭头。例如,创建一个向右的箭头: .arrow-right { width: 0; height:…

css制作日历

css制作日历

使用CSS Grid布局制作日历 日历的布局适合使用CSS Grid实现,因其天然的行列结构。以下是一个基础日历的HTML和CSS代码: <div class="calendar">…