…">
当前位置:首页 > CSS

怎么制作css开关

2026-04-02 18:00:11CSS

使用纯CSS创建开关

HTML结构需要包含一个隐藏的复选框和关联的标签元素:

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

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);
}

添加开关状态文本

在滑块上显示ON/OFF文字提示:

<label class="switch">
  <input type="checkbox">
  <span class="slider">
    <span class="on">ON</span>
    <span class="off">OFF</span>
  </span>
</label>

添加对应的CSS样式:

怎么制作css开关

.slider .on, .slider .off {
  position: absolute;
  font-size: 10px;
  color: white;
  top: 50%;
  transform: translateY(-50%);
}

.slider .on {
  left: 8px;
  display: none;
}

.slider .off {
  right: 8px;
}

input:checked + .slider .on {
  display: block;
}

input:checked + .slider .off {
  display: none;
}

创建方形开关样式

修改圆角属性实现直角开关:

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

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

添加禁用状态

通过CSS选择器实现禁用样式:

怎么制作css开关

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

HTML中禁用开关:

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

实现不同尺寸开关

通过CSS变量控制开关尺寸:

.small-switch {
  --width: 40px;
  --height: 24px;
  --slider-size: 16px;
}

.large-switch {
  --width: 80px;
  --height: 45px;
  --slider-size: 35px;
}

应用尺寸变量到样式规则:

.switch {
  width: var(--width);
  height: var(--height);
}

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

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

标签: css
分享给朋友:

相关文章

css怎么制作三角形

css怎么制作三角形

使用边框制作三角形 通过设置元素的边框宽度和颜色,可以创建不同方向的三角形。将元素的宽度和高度设为0,利用边框的透明属性实现。 .triangle-up { width: 0; height…

表格制作css

表格制作css

基础表格样式 使用CSS可以轻松地为HTML表格添加样式。以下是一个基础表格的HTML和CSS示例: <table class="basic-table"> <thead>…

css继承制作教程

css继承制作教程

CSS继承的基本概念 CSS继承是指某些CSS属性可以从父元素传递到子元素的特性。并非所有属性都支持继承,但常见的文本相关属性(如font-family、color)默认具有继承性。通过合理利用继承,…

css 制作按钮

css 制作按钮

基础按钮样式 使用CSS创建一个基础按钮需要定义display、padding、background-color和border等属性。以下是一个简单示例: .button { display:…

css导航条制作

css导航条制作

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

css按钮制作

css按钮制作

CSS按钮制作方法 基础按钮样式 创建一个简单的CSS按钮需要定义基本属性,如背景色、边框、内边距和文字样式。示例代码: .btn { background-color: #4CAF50;…