div+Css布局实现拟态立体质感checkbox开关切换效果代码
代码语言:html
所属分类:布局界面
代码描述:div+Css布局实现拟态立体质感checkbox开关切换效果代码
代码标签: div+Css 拟态 立体 质感 checkbox 开关 切换
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> <style> * { /* 常规初始化 */ margin: 0; padding: 0; box-sizing: border-box; /* 解决手机浏览器点击有选框的问题 */ -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } body { /* 常规居中显示、简单背景颜色 */ display: flex; justify-content: center; align-items: center; overflow: hidden; min-height: 100vh; background-color: #d6dce6; } .box { /* 父盒子宽高 */ width: 50vmin; height: 20vmin; position: relative; } .box label { /* 按钮背景盒子宽高撑满 */ width: 100%; height: 100%; /* 背景渐变色,简单来个新拟态效果意思意思 */ background: linear-gradient(#bdc8da, #eaedf2); /* 圆角,值超过一定量之后都无所谓了 */ border-radius: 20vmin; /* 左上角和右下角阴影 */ box-shadow: -1vmin -1vmin 4vmin rgba(255, 255, 255, 0.4), 1vmin 1vmin 5vmin rgba(0, 0, 0, 0.1); /* 鼠标小手 */ cursor: pointer; /* 定位叠在中间 */ position: absolute; } .box label::before { content: ""; /* 中间滑块宽高 */ width: 70%; height: 25%; /* 默认红色 */ background-color: #dd4d66; /* 圆角 */ border-radius: 10vmin; /* 内部一个阴影,像凹进去一样 */ box-shadow: inset 0 0.5vmin 4vmin rgba(0, 0, 0, 0.6); /* 定位居中显示,应为有个滑块的效果,所以左右的定位手动给 */ position: absolute; top: 50%; left: 15%; transform: translateY(-50%); z-index: 10; } /* 其实可以简化代码,把一样的内容上下写一遍就行,这里重复写一下好看一点 */ .box label::after { content: ""; /* 默认宽度为 0,当复选框选中之后,再慢慢变宽 */ width: 0; height: 25%; /* 选中状态为绿色 */ background-color: #39d339; /* 同样的圆角、阴影 */ border-radius: 10vmin; box-shadow: inset 0 0.5vmin 4vmin rgba(0, 0, 0, 0.6); /* 同样的定位 */ position: absolute; top: 50%; left: 15%; transform: translateY(-50%); /* 显示层级要盖过红色 */ z-index: 20; /* 过渡动画时间 */ .........完整代码请登录后点击上方下载按钮下载查看
网友评论0