当前位置: 首页 > Web前端 > CSS

前端CSS:1#纯CSS实现万圣节切换控件

时间:2023-03-30 17:15:08 CSS

介绍原始设计的来源。感谢comehop??e的前端日常实战对我的启蒙。本文仅对原文部分内容进行分析分享。有兴趣的可以去github.io查看原文预览效果。浏览源码地址https://github.com/shanyuhai1...代码解释和定义容器halloween-switcher,通过checkbox

导入字体,居中显示:@importurl('https://fonts.googleapis.com/css?family=Kodchasan');*{font-family:'Kodchasan';}html{font-size:20px;}body{宽度:100vw;高度:100vh;显示:弹性;对齐项目:居中;证明内容:居中;背景:#081219;overflow:hidden;}设置实际容器标签size.halloween-label{width:30rem;高度:10rem;边框:3px实心#E56D48;边界半径:10rem;游标:指针;显示:弹性;对齐项目:居中;56D48;--vampire-color:#4D7C99;}定义pumpkin-container,vampire-container容器及文字.halloween-input~.halloween-label::before,.halloween-input:checked~.halloween-label::before{position:绝对;字体大小:2.5rem;text-transform:uppercase;}.halloween-input~.halloween-label::before{content:'南瓜';颜色:var(--南瓜色);左:70%;transform:translateX(-70%);}.halloween-input:checked~.halloween-label::before{内容:'吸血鬼';颜色:var(--吸血鬼颜色);左:25%;转换:translateX(-25%);}.halloween-input~.halloween-label.pumpkin-container,.halloween-input~.halloween-label.vampire-container{width:9.5rem;高度:9.5rem;边界半径:50%;位置:绝对;左:0.25rem;溢出:隐藏;}.halloween-input~.halloween-label.pumpkin-container{背景色:var(--南瓜色);过滤器:不透明度(1);}.halloween-input~.halloween-label.vampire-container{背景颜色:var(--va帝国颜色);过滤器:不透明度(0);}.halloween-input:checked~.halloween-label.pumpkin-container{left:calc(100%-0.25rem);转换:translateX(-100%);过滤器:不透明度(0);}.halloween-input:checked~.halloween-label.vampire-container{left:calc(100%-0.25rem);转换:translateX(-100%);filter:opacity(1);}增加标签容器颜色渐变.halloween-label{border:3pxsolidvar(--label-border-color);过渡:.5s缓入缓出;}.halloween-label{--label-border-color:var(--pumpkin-color);}.halloween-input:checked~.halloween-label{--label-border-color:var(--vampire-color);}pumpkin-container,vampire-container容器及文字动画效果.halloween-input~.halloween-label::before,.halloween-input:checked~.halloween-label::before{transition:.5sease;}.halloween-input~.halloween-label.pumpkin-container,.halloween-input~.halloween-label.vampire-container{transition:.5sease;}先画南瓜,补充南瓜容器
新纸浆颜色html{--pumkin-pulp-color:#330A0F;}绘制南瓜的pumpkin__eyes-n-nose伪元素绘制eyes.pumpkin__eyes-n-nose{position:absolute;top:20%;width:0;height:0;border-style:solid;border-宽度:00.8rem1.6rem0.8rem;颜色:var(--pumpkin-color);边框底部颜色:var(--pumkin-pulp-color);背景颜色:var(--pumkin-pulp-color);}.pumpkin__eyes-n-nose::before,.pumpkin__eyes-n-nose::after{content:'';position:absolute;width:1rem;height:1rem;background-color:var(--pumkin-pulp-color);border-radius:50%;top:0.5rem;left:0;}.pumpkin__eyes-n-nose::before{margin-left:-3.25rem;}.pumpkin__eyes-n-nose::after{margin-left:2.25rem;}绘制南瓜的pumpkin__mouth-n-teeths伪元素来绘制teeth.pumpkin__mouth-n-teeths{position:absolute;width:6.5rem;height:3.25rem;bottom:10%;背景色r:var(--pumkin-pulp-color);border-radius:006.5rem6.5rem;}.pumpkin__mouth-n-teeths::before,.pumpkin__mouth-n-teeths::after{content:'';位置:绝对;高度:0.75rem;宽度:1rem;背景色:var(--pumpkin-color);}.pumpkin__mouth-n-teeths::before{top:0;左:1.25rem;}.pumpkin__mouth-n-teeths::after{height:1rem;底部:0;right:1.25rem;}再画吸血鬼,补全vampire-container利用伪元素绘制吸血鬼容器的脸.vampire-container::before,.vampire-container::在{内容:''之后;位置:绝对;宽度:100%;高度:100%;背景色:#c2def2;/*面颜色*/border-radius:45%45%00;顶部:0.75rem;}.vampire-container::before{left:-4rem;}.vampire-container::after{right:-4rem;}伪元素画出vampire__eyes.vampire__eyes{top:20%;位置:绝对;z-index:1;}.vampire__eyes::before,.vampire__eyes::after{content:'';位置:绝对;宽度:1rem;高度:1rem;背景色:#d63e49;/*眼睛颜色*/border-radius:50%;顶部:0.5rem;left:0;}.vampire__eyes::before{margin-left:-3.25rem;}.vampire__eyes::after{margin-left:2.25rem;}画出vampire__mouth.vampire__mouth{position:absolute;宽度:6.5rem;高度:3.25rem;背景颜色:var(--pumkin-pulp-color);底部:10%;边界半径:006.5rem6.5rem;显示:弹性;证明内容:居中;溢出:隐藏;z-index:1;}画出vampire__teeths门牙,伪元素画出牙齿.vampire__teeths{position:absolute;宽度:100%;高度:1rem;背景色:#fffae6;顶部:-1px;}.vampire__teeths::before,.vampire__teeths::after{content:'';位置:绝对;宽度:0;高度:0;颜色:透明;边框样式:实心;边界-宽度:0.65rem0.375rem00.375rem;边框顶部颜色:#fffae6;顶部:0.95rem;}.vampire__teeths::before{left:1rem;}.vampire__teeths::after{right:1rem;}drawvampire__tongue.vampire__tongue{position:absolute;宽度:3.5rem;高度:1.75rem;背景色:#d63e49;底部:-0.75rem;border-radius:3.5rem3.5rem00;}然后隐藏复选框可以添加微笑动画.halloween-input{display:none;}smile.vampire__teeths{animation:smile2sease-in-outinfinite;}.vampire__tongue{动画:微笑3秒缓入缓出无限;}@keyframes微笑{50%{变换:scaleY(1.5);}}最后,你完成了