css单选radio按钮样式css多选框checkbox样式css响应式汉堡菜单(左滑、抽屉)css实现遮罩层弹出效果一组好看的css按钮效果(6种)css实现select下拉选择框css实现选项卡功能css实现下拉菜单css按钮样式代码(16种)css实现手风琴效果css图片轮播效果css进度条样式css实现侧边栏菜单css加载动画css背景动画效果css开关按钮样式(18种)css炫酷的圆形菜单css提示tooltip效果css手风琴_好看的Gallery伸缩效果css表格样式css分段控件导航栏css折角效果css粒子背景动画效果css进度圆圈连线css响应式分页样式代码css各种天气样式动画图标css层叠卡片滑出特效css下拉Dropdown菜单css圆圈按钮tip提示特效css和svg圆圈进度样式代码css动画404页面代码css爱心跳动动画代码css绘制逼真玻璃球效果css模拟开关灯特效创意css网格布局带动画效果css星级打分radio五角星css卡片悬浮翻转特效div上下浮动纯css动画css时间轴样式(timeLine)css文字循环翻滚动画效果css输入框动效css鼠标悬停缩放比例效果css模糊背景毛玻璃效果css实现小球循环跳动动画css实现标签样式Tagscss进度条阴影动画css绘制的小鸟css svg按钮冒泡动画特效css svg蓝色波浪动画特效css创意svg菜单栏水滴动画css文字进度条的实现CSS实现内容折叠/展开效果CSS3手机充电特效css实现鼠标点击拖拽效果CSS实现一个计时器纯CSS渐变绘制 Chrome 图标CSS 渐变来实现波浪动画纯CSS动态显示屏幕宽高

css模拟开关灯特效

Hello there!


源码

<div id="lampadario">
<input type="radio" name="switch" value="on">
<input type="radio" name="switch" value="off" checked="checked">
<label for="switch"></label>
<div id="filo"></div>
<div id="lampadina">
<div id="sorpresa">
<div id="footer">Hello there!</div>
<div id="shadow"> Hello there!</div>
</div>
</div>
</div>

<style>
html, body {
font-family: Georgia, serif;
font-style: italic;
font-size: 4.2vmin;
line-height: 4.7vmin;
color: rgba(255,255,255,0.6);
margin: 0;
padding: 0;
height: 100%;
background: rgba(66,39,71,1);
background: linear-gradient(to bottom, rgba(66,39,71,1) 0%, rgba(43,25,46,1) 73%, rgba(19,11,20,1) 100%);
}
a {
color: rgba(255,255,255,0.6);
}
#lampadario {
position: fixed;
left: 50%;
top: 0;
}
#filo {
position: relative;
background-color: #000000;
width: 2px;
height: 150px;
left: 50%;
margin-left: -1px;
z-index: 1;
transform-origin: 0% 0%;
animation: oscillaFilo .9s ease-in-out 0s infinite alternate;
}
#filo:after {
content: " ";
left: -5px;
top: 100%;
position: absolute;
border-bottom: 15px solid #000000;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
height: 0;
width: 4px;
}
#lampadina {
position:relative;
}
input[value="off"]:checked ~ #filo {
box-shadow: -80px -10px 7px 0 rgba(0,0,0,0.1);
}
input[value="off"]:checked ~ #filo:after {
box-shadow: -80px -10px 10px -2px rgba(0,0,0,0.1);
}
input {
position: absolute;
width: 90px;
height: 70px;
top: 150px;
margin-left:-45px;
opacity: 0;
z-index: 1;
cursor: pointer;
}
input[value="on"] {
top: 150px;
}
input[value="off"] {
top: -100px;
}
input[value="on"]:checked {
top: -100px;
}
input[value="on"]:checked + input[value="off"] {
top: 150px;
}
label {
width: 51px;
height: 51px;
top: 164px;
position: absolute;
left: 0;
margin-left: -24px;
border-radius: 100%;
animation: oscillaLampadina .9s ease-in-out 0s infinite alternate;
}
input[value="off"]:checked ~ label {
background: rgba(255,255,255,0.03);
box-shadow: inset 0px 1px 5px rgba(255,255,255,0.1), inset 0px 2px 20px rgba(255,255,255,0.07), -80px -15px 15px -5px rgba(0,0,0,0.1);
}
input[value="on"]:checked ~ label {
background: rgba(255,255,255,1);
box-shadow: 0px 0px 10px rgba(255,255,255,0.8), 0px 0px 30px rgba(255,255,255,0.8), 0px 0px 50px rgba(255,255,255,0.6), 0px 0px 70px rgba(255,255,255,0.6), -80px -15px 120px 0px rgba(255,255,255,0.4);
}

input[value="off"]:checked ~
label:after {
content: " ";
width: 15px;
height: 15px;
top: 0;
position: absolute;
left: 0;
margin-left: 15px;
border-radius: 100%;
border: 2px solid rgba(255,255,255,0.03);
}
#sorpresa {
position: fixed;
top: 0;
left: 0;
width: 100%;
}
input[value="off"]:checked ~ #lampadina #sorpresa {
opacity: 0;
}
input[value="on"]:checked ~ #lampadina #sorpresa {
opacity: 1;
}
#footer {
position: fixed;
width: 94%;
text-align: center;
bottom: 30%;
padding: 0 3%;
z-index:1;
}
#shadow {
position: fixed;
width: 94%;
text-align: center;
bottom: 29%;
padding: 0 3%;
color:rgba(0,0,0,0);
text-shadow: 0px 0px 4px rgba(0,0,0,0.3);
transform-origin: 50% 0px;
animation: ombraTesto .9s ease-in-out 0s infinite alternate;
}

@keyframes oscillaFilo {
from {
transform:rotate(5deg);
} to {
transform:rotate(-5deg);
}
}
@keyframes oscillaLampadina {
from {
transform: rotate(3deg) translate(-16.4px,-1px);
} to {
transform: rotate(-3deg) translate(16.4px,-1px);
}
}
@keyframes ombraTesto {
from {
transform: translate(1px,0px) scale(1.01,1.06) skew(0.9deg, 0deg);
} to {
transform: translate(-1px,0px) scale(1.01,1.06) skew(-0.9deg, 0deg);
}
}
</style>


链接: https://fly63.com/course/33_1608