The content of this article is about how to use pure CSS to implement power switch control (source code attached). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you. .
input controls, switches and lights respectively :
<input> <div></div> <div></div>
body { margin: 0; height: 100vh; display: flex; align-items: center; justify-content: center; background-color: #eee; }
input control is different from the text size, so it needs to be set separately:
body { font-size: var(--font-size); } :root { --font-size: 16px; } .toggle { position: absolute; font-size: var(--font-size); width: 5em; height: 8em; margin: 0; filter: opacity(0); cursor: pointer; z-index: 2; }
.switch { position: absolute; width: 5em; height: 8em; border-radius: 1.2em; background: linear-gradient(#d2d4d6, white); }
.switch { box-shadow: inset 0 -0.2em 0.4em rgba(212, 212, 212, 0.75), inset 0 -0.8em 0 0.1em rgba(156, 156, 156, 0.85), 0 0 0 0.1em rgba(116, 116, 116, 0.8), 0 0.6em 0.6em rgba(41, 41, 41, 0.3), 0 0 0 0.4em #d4d7d8; }
on and
off text. It is currently in the
off state:
.toggle ~ .switch::before, .toggle ~ .switch::after { position: absolute; width: 100%; text-align: center; font-size: 1.4em; font-family: sans-serif; text-transform: uppercase; } .toggle ~ .switch::before { content: '|'; bottom: 1em; color: rgba(0, 0, 0, 0.5); text-shadow: 0 0.1em 0 rgba(255, 255, 255, 0.8); } .toggle ~ .switch::after { content: 'O'; top: 0.6em; color: rgba(0, 0, 0, 0.45); text-shadow: 0 0.1em 0 rgba(255, 255, 255, 0.4); }
input control to the
checked state to set the style in the
on state:
<input>
on State switch style:
.toggle:checked ~ .switch { background: linear-gradient(#a1a2a3, #f0f0f0); box-shadow: inset 0 0.2em 0.4em rgba(212, 205, 199, 0.75), inset 0 0.8em 0 0.1em rgba(255, 255, 255, 0.77), 0 0 0 0.1em rgba(116, 116, 118, 0.8), 0 -0.2em 0.2em rgba(41, 41, 41, 0.18), 0 0 0 0.4em #d4d7d8; }
on state:
.toggle:checked ~ .switch::before { bottom: 0.3em; text-shadow: 0 0.1em 0 rgba(255, 255, 255, 0.5); } .toggle:checked ~ .switch::after { top: 1.2em; text-shadow: 0 0.1em 0 rgba(255, 255, 255, 0.15); }
First set the dark effect in the
off state:
.toggle ~ .light { width: 100vw; height: 100vh; background-color: #0a0a16; z-index: 1; filter: opacity(0.7); }
on state:
.toggle:checked ~ .light { filter: opacity(0); }
The above is the detailed content of How to use pure CSS to implement power switch control (source code attached). For more information, please follow other related articles on the PHP Chinese website!