当前位置:首页 > 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创建一个基础按钮需要定义padding、background-color、border和border-radius等属性。以下是一个简单示例: .button { pad…

淘宝css导航栏制作

淘宝css导航栏制作

淘宝CSS导航栏制作方法 使用HTML和CSS可以轻松制作类似淘宝的导航栏。以下是一个常见的实现方式: HTML结构 <div class="nav-container"> <…

使用css制作钢琴块

使用css制作钢琴块

使用 CSS 制作钢琴块 钢琴块通常由黑白键交替排列组成,可以通过 HTML 和 CSS 实现。以下是实现钢琴块的步骤: HTML 结构 创建一个包含黑白键的容器,使用 <div> 元素…

css导航条制作

css导航条制作

水平导航条制作 使用display: inline-block或flexbox布局创建水平导航条。设置背景色、内边距和悬停效果增强交互性。 <nav> <ul class="h…

css动画制作

css动画制作

CSS动画基础语法 CSS动画通过@keyframes规则定义动画序列,结合animation属性实现动态效果。以下是一个基础示例: @keyframes example { 0% {bac…

css怎么制作表格

css怎么制作表格

使用HTML和CSS制作表格 在HTML中,表格由<table>标签定义,结合CSS可以灵活控制样式。 基本HTML结构: <table> <tr>…