本篇文章给大家带来的内容是关于如何使用纯CSS实现万圣节的toggle控件(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

效果预览

源代码地址

https://github.com/shanyuhai123/learnCSS/tree/master/0159-halloween-switcher

代码解读

定义容器 halloween-switcher , 通过 checkbox 来实现切换

引入字体, 居中显示:@import url('https://fonts.googleapis.com/css?family=Kodchasan');

* {

font-family: 'Kodchasan';

}

html {

font-size: 20px;

}

body {

width: 100vw;

height: 100vh;

display: flex;

align-items: center;

justify-content: center;

background: #081219;

overflow: hidden;

}

设置实际容器 label 大小.halloween-label {

width: 30rem;

height: 10rem;

border: 3px solid #E56D48;

border-radius: 10rem;

cursor: pointer;

display: flex;

align-items: center;

position: relative;

}

增加两种容器的配色html {

--pumpkin-color: #E56D48;

--vampire-color: #4D7C99;

}

定义 pumpkin-container , vampire-container 容器 及 文字.halloween-input ~ .halloween-label::before,

.halloween-input:checked ~ .halloween-label::before {

position: absolute;

font-size: 2.5rem;

text-transform: uppercase;

}

.halloween-input ~ .halloween-label::before {

content: 'Pumpkin';

color: var(--pumpkin-color);

left: 70%;

transform: translateX(-70%);

}

.halloween-input:checked ~ .halloween-label::before {

content: 'Vampire';

color: var(--vampire-color);

left: 25%;

transform: translateX(-25%);

}

.halloween-input ~ .halloween-label .pumpkin-container,

.halloween-input ~ .halloween-label .vampire-container {

width: 9.5rem;

height: 9.5rem;

border-radius: 50%;

position: absolute;

left: 0.25rem;

overflow: hidden;

}

.halloween-input ~ .halloween-label .pumpkin-container {

background-color: var(--pumpkin-color);

filter: opacity(1);

}

.halloween-input ~ .halloween-label .vampire-container {

background-color: var(--vampire-color);

filter: opacity(0);

}

.halloween-input:checked ~ .halloween-label .pumpkin-container {

left: calc(100% - 0.25rem);

transform: translateX(-100%);

filter: opacity(0);

}

.halloween-input:checked ~ .halloween-label .vampire-container {

left: calc(100% - 0.25rem);

transform: translateX(-100%);

filter: opacity(1);

}

增加 label容器 颜色渐变.halloween-label {

border: 3px solid var(--label-border-color);

transition: .5s ease-in-out;

}

.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: .5s ease;

}

.halloween-input ~ .halloween-label .pumpkin-container,

.halloween-input ~ .halloween-label .vampire-container {

transition: .5s ease;

}

先绘画 pumpkin , 补全 pumpkin-container

新增果肉颜色html {

--pumkin-pulp-color: #330A0F;

}

绘画 pumpkin 的 pumpkin__eyes-n-nose

伪元素画出眼睛.pumpkin__eyes-n-nose {

position: absolute;

top: 20%;

width: 0;

height: 0;

border-style: solid;

border-width: 0 0.8rem 1.6rem 0.8rem;

color: var(--pumpkin-color);

border-bottom-color: var(--pumkin-pulp-color);

background-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 的 pumpkin__mouth-n-teeths

伪元素画出牙齿.pumpkin__mouth-n-teeths {

position: absolute;

width: 6.5rem;

height: 3.25rem;

bottom: 10%;

background-color: var(--pumkin-pulp-color);

border-radius: 0 0 6.5rem 6.5rem;

}

.pumpkin__mouth-n-teeths::before,

.pumpkin__mouth-n-teeths::after {

content: '';

position: absolute;

height: 0.75rem;

width: 1rem;

background-color: var(--pumpkin-color);

}

.pumpkin__mouth-n-teeths::before {

top: 0;

left: 1.25rem;

}

.pumpkin__mouth-n-teeths::after {

height: 1rem;

bottom: 0;

right: 1.25rem;

}

再绘画 vampire , 补全 vampire-container

利用 伪元素 绘出 vampire-container 的脸.vampire-container::before,

.vampire-container::after {

content: '';

position: absolute;

width: 100%;

height: 100%;

background-color: #c2def2; /* face color */

border-radius: 45% 45% 0 0;

top: 0.75rem;

}

.vampire-container::before {

left: -4rem;

}

.vampire-container::after {

right: -4rem;

}

伪元素绘出 vampire__eyes.vampire__eyes {

top: 20%;

position: absolute;

z-index: 1;

}

.vampire__eyes::before,

.vampire__eyes::after {

content: '';

position: absolute;

width: 1rem;

height: 1rem;

background-color: #d63e49; /* eye-color */

border-radius: 50%;

top: 0.5rem;

left: 0;

}

.vampire__eyes::before {

margin-left: -3.25rem;

}

.vampire__eyes::after {

margin-left: 2.25rem;

}

绘出 vampire__mouth.vampire__mouth {

position: absolute;

width: 6.5rem;

height: 3.25rem;

background-color: var(--pumkin-pulp-color);

bottom: 10%;

border-radius: 0 0 6.5rem 6.5rem;

display: flex;

justify-content: center;

overflow: hidden;

z-index: 1;

}

绘出 vampire__teeths 门牙, 伪元素绘出牙齿.vampire__teeths {

position: absolute;

width: 100%;

height: 1rem;

background-color: #fffae6;

top: -1px;

}

.vampire__teeths::before,

.vampire__teeths::after {

content: '';

position: absolute;

width: 0;

height: 0;

color: transparent;

border-style: solid;

border-width: 0.65rem 0.375rem 0 0.375rem;

border-top-color: #fffae6;

top: 0.95rem;

}

.vampire__teeths::before {

left: 1rem;

}

.vampire__teeths::after {

right: 1rem;

}

绘出 vampire__tongue.vampire__tongue {

position: absolute;

width: 3.5rem;

height: 1.75rem;

background-color: #d63e49;

bottom: -0.75rem;

border-radius: 3.5rem 3.5rem 0 0;

}

再接着把 checkbox 隐藏掉即可.halloween-input {

display: none;

}

增加微笑动画 smile.vampire__teeths {

animation: smile 2s ease-in-out infinite;

}

.vampire__tongue {

animation: smile 3s ease-in-out infinite;

}

@keyframes smile {

50% {

transform: scaleY(1.5);

}

}

php万圣节源码,如何使用纯CSS实现万圣节的toggle控件(附源码)相关推荐

  1. css3 烟 蚊香_如何使用纯CSS实现蚊香燃烧的效果(附源码)

    本篇文章给大家带来的内容是关于如何使用纯CSS实现传统蚊香燃烧的效果(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 效果预览 源代码下载 每日前端实战系列的全部源代码请从 ...

  2. css 跳跃动画,如何使用纯CSS实现方块跳跃的动画(附源码)

    本篇文章给大家带来的内容是关于如何使用纯CSS实现方块跳跃的动画(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 效果预览 源代码下载 https://github.com/ ...

  3. java转俯视图,如何使用纯CSS实现一个足球场的俯视图(附源码)

    本篇文章给大家带来的内容是关于如何使用纯CSS实现一个足球场的俯视图(附源码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 效果预览 源代码下载 https://github.c ...

  4. 45个纯 CSS 实现的精美边框效果【附源码】【上篇】

    边框效果常用来给图片添加照片效果或用于增强页面内容片断的整体性,在一些团购网站和使用瀑布流布局的网站也经常会使用边框效果.在以前,简单的边框效果使用 CSS 可以轻松实现,但是用到阴影.弯曲和旋转等复 ...

  5. C#使用Xamarin开发可移植移动应用(3.Xamarin.Views控件)附源码

    .NET core2.0 发布了,刺激,大致看了一下,很不错,打算后期学习.(不出意外,应该也会写个小系列). 虽然官方推荐用共享类库创建新的类库..然而我这个Demo还是使用的可移植.. 嗯..解释 ...

  6. 45个纯 CSS 实现的精美边框效果【附演示和源码】【下篇】

    边框效果常用来给图片添加照片效果或用于增强页面内容片断的整体性,在一些团购网站和使用瀑布流布局的网站也经常会使用边框效果.在以前,简单的边框效果使用 CSS 可以轻松实现,但是用到阴影.弯曲和旋转等复 ...

  7. 45个纯 CSS 实现的精美边框效果【附在线演示和源码】【下篇】

    边框效果常用来给图片添加照片效果或用于增强页面内容片断的整体性,在一些团购网站和使用瀑布流布局的网站也经常会使用边框效果.在以前,简单的边框效果使用 CSS 可以轻松实现,但是用到阴影.弯曲和旋转等复 ...

  8. 自定义view,仿微信、支付宝密码输入控件的源码实现

    研究支付宝密码输入控件及源码实现 目标效果图 实现思路 要想实现输入,就少不了EditText 看整体布局应该是一个横向的LinearLayout 每个格子看进来应该是多个子View 那么我们是不是有 ...

  9. html5霓虹效果代码,纯CSS实现酷炫的霓虹灯效果(附demo)

    最近关注了油管上的 CSS Animation Effects Tutorial 系列,里面介绍了非常多有意思的 CSS 动效.其中第一个就是很酷炫的霓虹灯效果,这里就实现思路做一个简单的记录和分享. ...

最新文章

  1. SQL与NoSQL的区别 以MySQL与MongoDB为例
  2. 查询出每个部门比本部门平均工资高的职工人数
  3. PowerDesigner设计的数据库 ORA-0092
  4. 已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。...
  5. javascript window.confirm确认 取消对话框实现代码小结
  6. SHELL相关的特殊字符总结
  7. jax-rs jax-ws_JAX-WS入门
  8. 给你的网页添加随机BGM背景音乐
  9. 第六届中国云计算大会详细日程
  10. antd的select的滚动条怎么才会出现_纵向滚动条对横向滚动条的影响
  11. appscan 下载
  12. 随机搜索RandomizedSearchCV原理
  13. 数据清洗之 数据整理
  14. 【图解相对论系列1】怎样直观地理解张量(Tensor)?爱因斯坦广义相对论的数学基础...
  15. “把每天当倒计时过”是我俩的幸福秘方
  16. 硬盘存储双寡头之争 希捷重注中国市场或赢大丰收
  17. Android+Java Web+MySQL实现登录注册
  18. Keras: 创建多个输入以及混合数据输入的神经网络模型
  19. QT5百度地图开发学习——地图显示
  20. Kubectl debug 调试容器

热门文章

  1. 有了群晖怎么玩,分享一下我的群晖中运行的服务
  2. PHP 中的设计模式详解
  3. 计算机二进制补位是什么,2、二进制
  4. 计算机专业小论文题目,计算机专业小类论文题目 计算机专业小论文题目怎样拟...
  5. [06.21] LinkLabel 代码重构和我的SinaWeibo7 Project Todolist
  6. gojs实现仿启信宝股权结构关系树图
  7. 四、字符编码:ascii、gbk、Unicode、utf-8
  8. 【PTA】名人堂与代金券
  9. Mysql 的自增主键达到最大值,怎么办
  10. python实现图像差异性分析(标记并记录差异点)