前端必学的CSS制作Switch动画开关按钮演示
目录
前言
CSS 制作的 Switch 动画开关按钮
1.Html构建
2.CSS编写
3.完整代码
index.html文件
style.css文件
总结
前言
随着前端技术的不断发展与进步,界面交互的样式要求和美感也越来越高,很多网页的交互都加上了css动画,这里作者给大家分享一个前端开发必掌握的CSS制作Switch动画开关按钮,赶紧学起来吧,加在自己开发网页的按钮选择处,给页面增加一点活泼的气息~
CSS 制作的 Switch 动画开关按钮
这是一款使用纯 CSS 制作的 Switch 动画开关按钮,共 18 个,分为胶囊形和矩形两类,每个按钮都有自己独特的动画效果,看起来非常的逼真形象。(注意:演示中使用的字体为 10px,但 Chrome 以及 Chrome 内核的浏览器无法显示小于 12px 的字体,个别按钮会有点小问题,所以使用 Firefox 和 Safari 浏览器查看更佳)
1.Html构建
代码如下(示例):
<div id="button-1"> Switch动画开关按钮组件
<div class="button r" id="button-1"><input type="checkbox" class="checkbox" /><div class="knobs"></div><div class="layer"></div></div>
2.CSS编写
代码如下(示例):
这里通过type=checkbox的input是否checked编写打开与关闭样式动画效果
after和before伪元素来设置开、关文字
/* Button 1 */
#button-1 .knobs:before {content: 'YES';position: absolute;top: 4px;left: 4px;width: 20px;height: 10px;color: #fff;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;padding: 9px 4px;background-color: #03a9f4;border-radius: 50%;transition: 0.3s cubic-bezier(0.18, 0.89, 0.35, 1.15) all;
}#button-1 .checkbox:checked + .knobs:before {content: 'NO';left: 42px;background-color: #f44336;
}#button-1 .checkbox:checked ~ .layer {background-color: #fcebeb;
}#button-1 .knobs,
#button-1 .knobs:before,
#button-1 .layer {transition: 0.3s ease all;
}
3.完整代码
index.html文件
<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="utf-8" /><title>纯CSS制作Switch动画开关按钮演示_dowebok</title><link rel="stylesheet" href="style.css" /></head><body><h1>纯CSS制作Switch动画开关按钮演示</h1><div id="app-cover"><div class="row"><div class="toggle-button-cover"><div class="button-cover"><div class="button r" id="button-1"><input type="checkbox" class="checkbox" /><div class="knobs"></div><div class="layer"></div></div></div></div><div class="toggle-button-cover"><div class="button-cover"><div class="button r" id="button-2"><input type="checkbox" class="checkbox" /><div class="knobs"></div><div class="layer"></div></div></div></div><div class="toggle-button-cover"><div class="button-cover"><div class="button r" id="button-3"><input type="checkbox" class="checkbox" /><div class="knobs"></div><div class="layer"></div></div></div></div></div><div class="row"><div class="toggle-button-cover"><div class="button-cover"><div class="button r" id="button-4"><input type="checkbox" class="checkbox" /><div class="knobs"></div><div class="layer"></div></div></div></div><div class="toggle-button-cover"><div class="button-cover"><div class="button r" id="button-5"><input type="checkbox" class="checkbox" /><div class="knobs"><span></span></div><div class="layer"></div></div></div></div><div class="toggle-button-cover"><div class="button-cover"><div class="button r" id="button-6"><input type="checkbox" class="checkbox" /><div class="knobs"> </div><div class="layer"></div></div></div></div></div><div class="row"><div class="toggle-button-cover"><div class="button-cover"><div class="button r" id="button-7"><input type="checkbox" class="checkbox" /><div class="knobs"><span></span></div><div class="layer"></div></div></div></div><div class="toggle-button-cover"><div class="button-cover"><div class="button r" id="button-8"><input type="checkbox" class="checkbox" /><div class="knobs"><span></span></div><div class="layer"></div></div></div></div><div class="toggle-button-cover"><div class="button-cover"><div class="button r" id="button-9"><input type="checkbox" class="checkbox" /><div class="knobs"><span></span></div><div class="layer"></div></div></div></div></div><div class="row"><div class="toggle-button-cover"><div class="button-cover"><div class="button b2" id="button-10"><input type="checkbox" class="checkbox" /><div class="knobs"><span>YES</span></div><div class="layer"></div></div></div></div><div class="toggle-button-cover"><div class="button-cover"><div class="button b2" id="button-11"><input type="checkbox" class="checkbox" /><div class="knobs"><span></span></div><div class="layer"></div></div></div></div><div class="toggle-button-cover"><div class="button-cover"><div class="button b2" id="button-12"><input type="checkbox" class="checkbox" /><div class="knobs"><span></span></div><div class="layer"></div></div></div></div></div><div class="row"><div class="toggle-button-cover"><div class="button-cover"><div class="button b2" id="button-13"><input type="checkbox" class="checkbox" /><div class="knobs"><span></span></div><div class="layer"></div></div></div></div><div class="toggle-button-cover"><div class="button-cover"><div class="button b2" id="button-14"><input type="checkbox" class="checkbox" /><div class="knobs"><span></span></div><div class="layer"></div></div></div></div><div class="toggle-button-cover"><div class="button-cover"><div class="button b2" id="button-15"><input type="checkbox" class="checkbox" /><div class="knobs"></div><div class="layer"></div></div></div></div></div><div class="row"><div class="toggle-button-cover"><div class="button-cover"><div class="button b2" id="button-16"><input type="checkbox" class="checkbox" /><div class="knobs"></div><div class="layer"></div></div></div></div><div class="toggle-button-cover"><div class="button-cover"><div class="button b2" id="button-17"><input type="checkbox" class="checkbox" /><div class="knobs"><span></span></div><div class="layer"></div></div></div></div><div class="toggle-button-cover"><div class="button-cover"><div class="button b2" id="button-18"><input type="checkbox" class="checkbox" /><div class="knobs"><span></span></div><div class="layer"></div></div></div></div></div></div></body>
</html>
style.css文件
* {user-select: none;-webkit-tap-highlight-color: transparent;
}*:focus {outline: none;
}body {font-family: Arial, Helvetica, sans-serif;margin: 0;background-color: #f1f9f9;
}#app-cover {display: table;width: 600px;margin: 40px auto;counter-reset: button-counter;
}.row {display: table-row;
}.toggle-button-cover {display: table-cell;position: relative;width: 200px;height: 140px;box-sizing: border-box;
}.button-cover {height: 100px;margin: 20px;background-color: #fff;box-shadow: 0 10px 20px -8px #c5d6d6;border-radius: 4px;
}.button-cover:before {counter-increment: button-counter;content: counter(button-counter);position: absolute;right: 0;bottom: 0;color: #d7e3e3;font-size: 12px;line-height: 1;padding: 5px;
}.button-cover,
.knobs,
.layer {position: absolute;top: 0;right: 0;bottom: 0;left: 0;
}.button {position: relative;top: 50%;width: 74px;height: 36px;margin: -20px auto 0 auto;overflow: hidden;
}.button.r,
.button.r .layer {border-radius: 100px;
}.button.b2 {border-radius: 2px;
}.checkbox {position: relative;width: 100%;height: 100%;padding: 0;margin: 0;opacity: 0;cursor: pointer;z-index: 3;
}.knobs {z-index: 2;
}.layer {width: 100%;background-color: #ebf7fc;transition: 0.3s ease all;z-index: 1;
}/* Button 1 */
#button-1 .knobs:before {content: 'YES';position: absolute;top: 4px;left: 4px;width: 20px;height: 10px;color: #fff;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;padding: 9px 4px;background-color: #03a9f4;border-radius: 50%;transition: 0.3s cubic-bezier(0.18, 0.89, 0.35, 1.15) all;
}#button-1 .checkbox:checked + .knobs:before {content: 'NO';left: 42px;background-color: #f44336;
}#button-1 .checkbox:checked ~ .layer {background-color: #fcebeb;
}#button-1 .knobs,
#button-1 .knobs:before,
#button-1 .layer {transition: 0.3s ease all;
}/* Button 2 */
#button-2 .knobs:before,
#button-2 .knobs:after {content: 'YES';position: absolute;top: 4px;left: 4px;width: 20px;height: 10px;color: #fff;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;padding: 9px 4px;background-color: #03a9f4;border-radius: 50%;transition: 0.3s ease all;
}#button-2 .knobs:before {content: 'YES';
}#button-2 .knobs:after {content: 'NO';
}#button-2 .knobs:after {right: -28px;left: auto;background-color: #f44336;
}#button-2 .checkbox:checked + .knobs:before {left: -28px;
}#button-2 .checkbox:checked + .knobs:after {right: 4px;
}#button-2 .checkbox:checked ~ .layer {background-color: #fcebeb;
}/* Button 3 */
#button-3 .knobs:before {content: 'YES';position: absolute;top: 4px;left: 4px;width: 20px;height: 10px;color: #fff;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;padding: 9px 4px;background-color: #03a9f4;border-radius: 50%;transition: 0.3s ease all, left 0.3s cubic-bezier(0.18, 0.89, 0.35, 1.15);
}#button-3 .checkbox:active + .knobs:before {width: 46px;border-radius: 100px;
}#button-3 .checkbox:checked:active + .knobs:before {margin-left: -26px;
}#button-3 .checkbox:checked + .knobs:before {content: 'NO';left: 42px;background-color: #f44336;
}#button-3 .checkbox:checked ~ .layer {background-color: #fcebeb;
}/* Button 4 */
#button-4 .knobs:before,
#button-4 .knobs:after {position: absolute;top: 4px;left: 4px;width: 20px;height: 10px;color: #fff;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;padding: 9px 4px;background-color: #03a9f4;border-radius: 50%;transition: 0.3s cubic-bezier(0.18, 0.89, 0.35, 1.15) all;
}#button-4 .knobs:before {content: 'YES';
}#button-4 .knobs:after {content: 'NO';
}#button-4 .knobs:after {top: -28px;right: 4px;left: auto;background-color: #f44336;
}#button-4 .checkbox:checked + .knobs:before {top: -28px;
}#button-4 .checkbox:checked + .knobs:after {top: 4px;
}#button-4 .checkbox:checked ~ .layer {background-color: #fcebeb;
}/* Button 5 */
#button-5 {perspective: 60px;overflow: visible;
}#button-5 .knobs:before,
#button-5 .knobs span {content: '';position: absolute;top: 4px;left: 4px;width: 20px;height: 10px;color: #fff;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;padding: 9px 4px;border-radius: 50%;transition: 0.3s cubic-bezier(0.18, 0.89, 0.35, 1.15) all;
}#button-5 .knobs:before {background-color: #03a9f4;
}#button-5 .knobs span:before {content: 'YES';
}#button-5 .knobs:before,
#button-5 .layer {transform: rotateY(0);transform-origin: center;
}#button-5 .checkbox:checked + .knobs:before,
#button-5 .checkbox:checked + .knobs span {left: 42px;
}#button-5 .checkbox:checked + .knobs:before {transform: rotateY(180deg);background-color: #f44336;
}#button-5 .checkbox:checked + .knobs span:before {content: 'NO';left: 42px;
}#button-5 .checkbox:checked ~ .layer {background-color: #fcebeb;transform: rotateY(-180deg);
}#button-5 .knobs,
#button-5 .knobs:before,
#button-5 .layer {transition: 0.3s ease all;
}/* Button 6 */
#button-6 {overflow: visible;
}#button-6 .knobs:before {content: 'YES';position: absolute;top: 4px;left: 4px;width: 20px;height: 10px;color: #fff;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;padding: 9px 4px;background-color: #03a9f4;border-radius: 50%;
}#button-6 .layer,
#button-6 .knobs,
#button-6 .knobs:before {transform: rotateZ(0);transition: 0.4s cubic-bezier(0.18, 0.89, 0.35, 1.15) all;
}#button-6 .checkbox:checked + .knobs {transform: rotateZ(-180deg);
}#button-6 .checkbox:checked + .knobs:before {content: 'NO';background-color: #f44336;transform: rotateZ(180deg);
}#button-6 .checkbox:checked ~ .layer {background-color: #fcebeb;transform: rotateZ(180deg);
}/* Button 7 */
#button-7 .knobs:before,
#button-7 .knobs:after {position: absolute;top: 4px;width: 20px;height: 10px;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;padding: 9px 4px;border-radius: 50%;
}#button-7 .knobs span {position: absolute;top: 4px;width: 20px;height: 10px;font-size: 0;font-weight: bold;text-align: center;line-height: 1;padding: 9px 4px;border-radius: 50%;
}#button-7 .knobs:before {content: 'YES';left: 4px;color: #fff;opacity: 1;
}#button-7 .knobs:after {content: 'NO';left: 42px;color: #fff;width: 14px;text-align: left;padding: 9px 7px;background-color: #f44336;/* background-color: #000; */opacity: 0;
}#button-7 .knobs:before,
#button-7 .knobs:after {transition: 0.3s ease all;z-index: 2;
}#button-7 .knobs span {left: 4px;background-color: #03a9f4;transition: 0.2s ease all;/* transition: 5s ease all; */z-index: 1;
}#button-7 .checkbox:checked + .knobs:before {opacity: 0;
}#button-7 .checkbox:checked + .knobs:after {opacity: 1;
}#button-7 .checkbox:checked + .knobs span {top: 18px;left: 56px;left: 58px;width: 0;height: 0;padding: 0;background-color: #fff;z-index: 3;
}#button-7 .checkbox:checked ~ .layer {background-color: #fcebeb;
}/* Button 8 */
#button-8 .knobs {border-radius: 100px;overflow: hidden;
}#button-8 .knobs:before,
#button-8 .knobs:after,
#button-8 .knobs span {position: absolute;top: 4px;width: 20px;height: 10px;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;padding: 9px 4px;border-radius: 50%;transition: 0.3s ease all;
}#button-8 .knobs:before {content: 'YES';color: #fff;left: 4px;
}#button-8 .knobs:after {content: 'NO';left: 42px;color: #fff;background-color: #f44336;opacity: 0;
}#button-8 .knobs:before,
#button-8 .knobs:after {z-index: 2;
}#button-8 .knobs span {left: 4px;background-color: #03a9f4;z-index: 1;
}#button-8 .checkbox:checked + .knobs:before {opacity: 0;
}#button-8 .checkbox:checked + .knobs:after {opacity: 1;
}#button-8 .checkbox:checked + .knobs span {background-color: #fcebeb;transform: scale(4);
}/* Button 9 */
#button-9 .knobs:before,
#button-9 .knobs:after,
#button-9 .knobs span {position: absolute;top: 4px;width: 20px;height: 10px;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;padding: 9px 4px;border-radius: 50%;transition: 0.4s cubic-bezier(0.18, 0.89, 0.35, 1.15) all;
}#button-9 .knobs:before {content: 'YES';left: 4px;
}#button-9 .knobs:after {content: 'NO';right: -24px;
}#button-9 .knobs:before,
#button-9 .knobs:after {color: #fff;z-index: 2;
}#button-9 .knobs span {left: 4px;background-color: #03a9f4;z-index: 1;
}#button-9 .checkbox:checked + .knobs:before {left: -24px;
}#button-9 .checkbox:checked + .knobs:after {right: 4px;
}#button-9 .checkbox:checked + .knobs span {left: 42px;background-color: #f44336;
}#button-9 .checkbox:checked ~ .layer {background-color: #fcebeb;
}/* Button 10 */
#button-10 .knobs:before,
#button-10 .knobs:after,
#button-10 .knobs span {position: absolute;top: 4px;width: 20px;height: 10px;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;padding: 9px 4px;border-radius: 2px;transition: 0.3s ease all;
}#button-10 .knobs:before {content: '';left: 4px;background-color: #03a9f4;
}#button-10 .knobs:after {content: 'NO';right: 4px;color: #4e4e4e;
}#button-10 .knobs span {display: inline-block;left: 4px;color: #fff;z-index: 1;
}#button-10 .checkbox:checked + .knobs span {color: #4e4e4e;
}#button-10 .checkbox:checked + .knobs:before {left: 42px;background-color: #f44336;
}#button-10 .checkbox:checked + .knobs:after {color: #fff;
}#button-10 .checkbox:checked ~ .layer {background-color: #fcebeb;
}/* Button 11 */
#button-11 {overflow: visible;
}#button-11 .knobs {perspective: 70px;
}#button-11 .knobs:before,
#button-11 .knobs:after,
#button-11 .knobs span {position: absolute;top: 4px;border-radius: 2px;
}#button-11 .knobs:before,
#button-11 .knobs:after {width: 20px;height: 10px;color: #4e4e4e;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;padding: 9px 4px;
}#button-11 .knobs:before {content: 'YES';left: 4px;
}#button-11 .knobs:after {content: 'NO';right: 4px;
}#button-11 .knobs span {right: 4px;width: 33px;height: 28px;background-color: #03a9f4;transform: rotateY(0);transform-origin: 0% 50%;transition: 0.6s ease all;z-index: 1;
}#button-11 .checkbox:checked + .knobs span {transform: rotateY(-180deg);background-color: #f44336;
}#button-11 .checkbox:checked ~ .layer {background-color: #fcebeb;
}/* Button 12 */
#button-12 .knobs:before,
#button-12 .knobs:after,
#button-12 .knobs span,
#button-12 .knobs span:before,
#button-12 .knobs span:after {position: absolute;top: 4px;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;border-radius: 2px;transition: 0.3s ease all;
}#button-12 .knobs:before {content: 'YES';left: 4px;
}#button-12 .knobs:after {content: 'NO';right: 4px;
}#button-12 .knobs:before,
#button-12 .knobs:after {width: 27px;height: 10px;color: #4e4e4e;padding: 9px 3px;z-index: 1;
}#button-12 .knobs span {display: inline-block;z-index: 2;
}#button-12 .knobs span,
#button-12 .knobs span:before,
#button-12 .knobs span:after {width: 20px;height: 10px;padding: 9px 4px;
}#button-12 .knobs span:before,
#button-12 .knobs span:after {content: '';top: 0;
}#button-12 .knobs span:before {left: -28px;background-color: #f44336;
}#button-12 .knobs span:after {right: -42px;background-color: #03a9f4;
}#button-12 .checkbox:checked + .knobs span:before {left: 4px;
}#button-12 .checkbox:checked + .knobs span:after {right: -74px;
}#button-12 .checkbox:checked ~ .layer {background-color: #fcebeb;
}/* Button 13 */
#button-13 .knobs:before,
#button-13 .knobs:after,
#button-13 .knobs span {position: absolute;top: 4px;width: 20px;height: 10px;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;padding: 9px 4px;border-radius: 2px;transition: 0.3s ease all;
}#button-13 .knobs:before,
#button-13 .knobs:after {color: #4e4e4e;z-index: 1;
}#button-13 .knobs:before {content: 'YES';left: 4px;
}#button-13 .knobs:after {content: 'NO';right: 4px;
}#button-13 .knobs span {width: 25px;left: 37px;background-color: #03a9f4;z-index: 2;
}#button-13 .checkbox:checked + .knobs span {left: 4px;background-color: #f44336;
}#button-13 .checkbox:checked ~ .layer {background-color: #fcebeb;
}/* Button 14 */
#button-14 .knobs:before,
#button-14 .knobs:after,
#button-14 .knobs span:before,
#button-14 .knobs span:after {position: absolute;top: 4px;width: 20px;height: 10px;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;padding: 9px 4px;border-radius: 2px;transition: 0.3s ease all;
}#button-14 .knobs:before,
#button-14 .knobs:after {color: #4e4e4e;z-index: 1;
}#button-14 .knobs:before {content: 'YES';left: 4px;
}#button-14 .knobs:after {content: 'NO';right: 4px;
}#button-14 .knobs span {top: 0;left: 0;display: block;width: 100%;height: 100%;
}#button-14 .knobs span:before {left: 4px;top: -28px;background-color: #f44336;
}#button-14 .knobs span:after {top: 4px;left: 39px;background-color: #03a9f4;
}#button-14 .knobs span:before,
#button-14 .knobs span:after {content: '';width: 23px;z-index: 2;
}#button-14 .checkbox:checked + .knobs span:before {top: 4px;
}#button-14 .checkbox:checked + .knobs span:after {top: -28px;
}#button-14 .checkbox:checked ~ .layer {background-color: #fcebeb;
}/* Button 15 */
#button-15 .knobs:before,
#button-15 .knobs:after {position: absolute;top: 4px;width: 20px;height: 10px;color: #fff;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;padding: 9px 4px;opacity: 1;border-radius: 2px;transform: scale(1);transition: 0.3s cubic-bezier(0.18, 0.89, 0.35, 1.15) all;
}#button-15 .knobs:before {content: 'YES';left: 4px;background-color: #03a9f4;
}#button-15 .knobs:after {content: 'NO';right: 4px;opacity: 0;transform: scale(4);background-color: #f44336;
}#button-15 .checkbox:checked + .knobs:before {opacity: 0;transform: scale(4);
}#button-15 .checkbox:checked + .knobs:after {opacity: 1;transform: scale(1);
}#button-15 .checkbox:checked ~ .layer {background-color: #fcebeb;
}/* Button 16 */
#button-16 .knobs:before {content: 'YES';position: absolute;top: 4px;left: 4px;width: 20px;height: 10px;color: #fff;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;padding: 9px 4px;background-color: #03a9f4;border-radius: 2px;transition: 0.3s ease all, left 0.3s cubic-bezier(0.18, 0.89, 0.35, 1.15);
}#button-16 .checkbox:active + .knobs:before {width: 46px;
}#button-16 .checkbox:checked:active + .knobs:before {margin-left: -26px;
}#button-16 .checkbox:checked + .knobs:before {content: 'NO';left: 42px;background-color: #f44336;
}#button-16 .checkbox:checked ~ .layer {background-color: #fcebeb;
}/* Button 17 */
#button-17 .knobs:before,
#button-17 .knobs span {content: 'YES';position: absolute;top: 4px;left: 4px;width: 20px;height: 10px;color: #fff;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;padding: 9px 4px;
}#button-17 .knobs:before {transition: 0.3s ease all, left 0.5s cubic-bezier(0.18, 0.89, 0.35, 1.15);z-index: 2;
}#button-17 .knobs span {background-color: #03a9f4;border-radius: 2px;transition: 0.3s ease all, left 0.3s cubic-bezier(0.18, 0.89, 0.35, 1.15);z-index: 1;
}#button-17 .checkbox:checked + .knobs:before {content: 'NO';left: 42px;
}#button-17 .checkbox:checked + .knobs span {left: 42px;background-color: #f44336;
}#button-17 .checkbox:checked ~ .layer {background-color: #fcebeb;
}/* Button 18 */
#button-18 .knobs:before,
#button-18 .knobs span {content: 'YES';position: absolute;top: 4px;left: 4px;color: #fff;font-size: 10px;font-weight: bold;text-align: center;line-height: 1;background-color: #03a9f4;border-radius: 2px;
}#button-18 .knobs:before {top: 50%;left: 8px;width: 20px;height: 10px;margin-top: -5px;background-color: transparent;z-index: 2;
}#button-18 .knobs span {width: 20px;height: 10px;padding: 9px 4px;transition: 0.3s ease all, left 0.3s cubic-bezier(0.18, 0.89, 0.35, 1.15);z-index: 1;
}#button-18 .checkbox:active + .knobs:before {left: 10px;width: 46px;height: 4px;color: transparent;margin-top: -2px;background-color: #0095d8;transition: 0.3s ease all;overflow: hidden;
}#button-18 .checkbox:active + .knobs span {width: 58px;
}#button-18 .checkbox:checked:active + .knobs:before {left: auto;right: 10px;background-color: #d80000;
}#button-18 .checkbox:checked:active + .knobs span {margin-left: -38px;
}#button-18 .checkbox:checked + .knobs:before {content: 'NO';left: 47px;
}#button-18 .checkbox:checked + .knobs span {left: 42px;background-color: #f44336;
}#button-18 .checkbox:checked ~ .layer {background-color: #fcebeb;
}#ytd-url {display: block;position: fixed;right: 0;bottom: 0;padding: 10px 14px;margin: 20px;color: #fff;font-size: 14px;text-decoration: none;background-color: #143240;border-radius: 4px;box-shadow: 0 10px 20px -5px rgba(20, 50, 64, 0.76);
}
总结
以上就是今天要讲的内容啦,给大家分享了一个纯CSS制作Switch动画开关按钮演示,谢谢观看,如果觉得对您有帮助的话,可否给博主一个小小的赞和关注~
相关文章:

前端必学的CSS制作Switch动画开关按钮演示
目录 前言 CSS 制作的 Switch 动画开关按钮 1.Html构建 2.CSS编写 3.完整代码 index.html文件 style.css文件 总结 前言 随着前端技术的不断发展与进步,界面交互的样式要求和美感也越来越高,很多网页的交互都加上了css动画,这里作者给大家分享一…...

C语言运算符(左值右值,基本运算符)
一.数据对象,左值,右值,运算符 数据对象:用于存储值的数据存储区域统称,而使用变量名是标识对象的一种方法(还有指针,后面会教的) 左值:用于标识特定数据对象的名称或表…...

【自学Python】一文读懂Python字符串是否是数字
Python字符串是否是数字 Python字符串是否是数字教程 在开发过程中,有时候我们需要判断一个 字符串 是否是 数字 形式,在 Python 中,判断字符串是否只由数字组成的函数为 isnumeric() 。 isnumeric() 函数只能判断 unicode 字符串…...

【PTA Advanced】1146 Topological Order(C++)
目录 题目 Input Specification: Output Specification: Sample Input: Sample Output: 思路 C 知识UP 代码 题目 This is a problem given in the Graduate Entrance Exam in 2018: Which of the following is NOT a topological order obtained from the given dire…...

基于stm32mp157的嵌入式linux+qt项目实战物联网毕业设计选题之智慧医疗项目
stm32mp157开发板FS-MP1A是华清远见自主研发的一款高品质、高性价比的Linux单片机二合一的嵌入式教学级开发板。开发板搭载ST的STM32MP157高性能微处理器,集成2个Cortex-A7核和1个Cortex-M4 核,A7核上可以跑Linux操作系统,M4核上可以跑FreeRT…...
Java实现邮件发送功能
确定发件人邮箱和密码某些邮箱服务器为了增加邮箱本身密码的安全性,给 SMTP 客户端设置了独立密码(有的邮箱称为“授权码”) 对于开启了独立密码的邮箱, 这里的邮箱密码必需使用这个独立密码(授权码) 确认发件人邮箱的 SMTP 服务器地址发件人邮箱的 SMTP 服务器地址, 必须…...

springboot+vue简单对接支付宝完整流程
源码 前端 vue-demo https://www.aliyundrive.com/s/dmnY8G6N6RM 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。 后端 aliPay https://www.aliyundrive.com/s/H2JFBjGWuf2 …...
Map 查找表
Map体现的结构是一个多行两列的表格,其中左列称为key,右列称为value.Map总是成对保存数据,并且总是根据key获取对应的value.因此我们可以将查询的条件作为key查询对应的结果作为value保存到Map中.Map有一个要求:key不允许重复(equals比较的结果)java.util.Map接口,是所有Map的顶…...

python--石头剪刀布游戏(列表)
本使用了下面几篇文章的知识: python(8)--列表初阶使用_码银的博客-CSDN博客 python(7)--if语句_码银的博客-CSDN博客 一、学习目标 利用列表实现石头剪刀布游戏 二、实验环境 Pycharm社区版、win11 三、代码 先贴代码,有需要的直接拿,想要进…...

Project Caliper:目标是打造最佳VR手柄
一提到Valve Index,人们很快联想到它的五指追踪VR手柄,这款支持手势追踪和体感反馈的高端VR手柄,是市面上最强大的C端VR手柄之一。尽管如此,它依然存在许多缺陷,比如配备的小型摇杆质量不佳、集成式设计不利于维修、人…...

自动驾驶:BEV开山之作LSS(lift,splat,shoot)原理代码串讲
自动驾驶:BEV开山之作LSS(lift,splat,shoot)原理代码串讲前言Lift参数创建视锥CamEncodeSplat转换视锥坐标系Voxel Pooling总结前言 目前在自动驾驶领域,比较火的一类研究方向是基于采集到的环视图像信息,去构建BEV视角…...
C# 如何实现对“属性”的扩展
目录一、为什么要扩展属性二、如何做?一、为什么要扩展属性 属性是一个类的特征,随着开发的不断升级,这种特征可能在一直变化,有时候为了向下兼容,一般属性的数量都是直接递增的。 例如:一个Person类&…...
EBS 物料属性 先后台对应关系 MTL_SYSTEM_ITEMS_B
Introductionweb The basic table mtl_system_items_b is the basic table of item in ERP system and there are a lot of columns,but I don’t know used of each column,particularly the column like %_flag. The reason of general exception may be because the ‘%_fl…...

MYSQL数据库-主从复制(原理及搭建)
文章目录1 概述2 原理3 搭建3.1 主库配置3.2 从库配置1 概述 主从复制是指将主数据库的DDL和 DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进…...
3GPP-NR Band25标准定义频点和信道(3GPP V17.7.0 (2022-12))
Reference test frequencies for NR operating band n25 Table 4.3.1.1.1.25-1: Test frequencies for NRoperating band n25 and SCS 15 kHz CBW [MHz]carrierBandwidth...

微信小程序 之 原生开发
目录 一、前期预备 1. 预备知识 2. 注册账号 - 申请AppID 3. 下载小程序开发工具 4. 小程序项目结构 5. 小程序的MVVM架构 二、创建小程序项目 1. 查看注册的appId 2. 创建项目 3. 新建页面 01 - 创建text页面文件夹 02 - 新建text的page 03 - 在app.json中配置 …...

常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件
常用vim命令和vim基本使用及Linux用户的管理,用户和组相关文件1. vim 的基本介绍和使用1.1 vim的三种模式1.2 常用vim命令【小白】1.3 Vim键盘图:2. Linux用户管理2.1 添加用户2.2 删除用户2.3 修改账号3. Linux系统用户组的管理4. 用户和组相关文件4.1 …...

阿里云服务器部署前后端分离项目
阿里云服务器部署 【若依】 前后端分离项目 文章目录一、域名解析二、服务器操作系统置空三、部署方式四、需安装环境配置五、Linux服务器安装相应内容(具体安装步骤)(一)安装JDK(3种方式)使用Yum安装&…...

内核经典数据结构list 剖析
前言:linux内核中有很多经典的数据结构,list(也称list_head)为其中之一,这些数据结构都是使用C语言实,并且定义和实现都在单独的头文件list.h中。可以随时拿出来使用。list.h的定义不同linux发行版本路径不同,我们可以在/usr/incl…...
华为OD机试 - 考优选核酸检测点(Python)| 真题+思路+考点+代码+岗位
优选核酸检测点 题目 张三要去外地出差,需要做核酸,需要在指定时间点前做完核酸, 请帮他找到满足条件的核酸检测点。 给出一组核酸检测点的距离和每个核酸检测点当前的人数给出张三要去做核酸的出发时间 出发时间是 10 分钟的倍数 同时给出张三做核酸的最晚结束时间题目中…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...