這篇文章帶給大家的內容是關於如何使用純CSS實現電源開關控制(附源碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
#https:/ /github.com/comehope/front-end-daily-challenges
定義dom,包含3 個元素,分別代表input
控制、開關和燈光:
<input> <div></div> <div></div>
居中顯示:
body { margin: 0; height: 100vh; display: flex; align-items: center; justify-content: center; background-color: #eee; }
定義控制項的樣式,把控制項的設定為透明,使其不可見,但仍可與使用者互動。其中字號大小是變量,因為input
控制項的字號與正文號不同,所以需要單獨設定:
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
和off
文本,目前是處於off
狀態:
.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
控制項設定為checked
狀態,以便設定處於on
狀態的樣式:
<input>
設定處於on
狀態的開關樣式:
.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
狀態的文字樣式:
.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); }
接下來設定燈光效果。
先設定處於 off
狀態的黑暗效果:
.toggle ~ .light { width: 100vw; height: 100vh; background-color: #0a0a16; z-index: 1; filter: opacity(0.7); }
再設定處於 on
狀態的明亮效果:
.toggle:checked ~ .light { filter: opacity(0); }
大功告成!
以上是如何使用純CSS實現電源開關控制項(附源碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!