点击后
index.css:
*{ margin: 0; padding: 0; } body{ height: 100vh; display: flex; justify-content: center; align-items: center; } label{ transform: scale(2); width: 100px; height: 50px; border: solid 1px #ddd; background: #ddd; border-radius: 25px; position: relative; overflow: hidden; } label input{ visibility: hidden; } label input::after{ visibility: visible; content: ''; width: 40px; height: 40px; position: absolute; left: 0; top: 0; background: #fff; border-radius: 50%; left: 5px; top: 5px; transition: all 0.2s; } label input:checked::after{ transform: translateX(50px); } /* 关于背景颜色变化 */ label input::before{ content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; visibility: visible; transition: all 0.2s; } label input:checked::before{ background: rgb(70, 175, 93); }HTML:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="index.css"> <title>Document</title> </head> <body> <label> <input type="checkbox" class="checked"> </label> </body> </html>