Basic formula for controlling the look and feel of a checkbox. No JavaScript.
Blog post: Checkbox Trickery with CSS
Basic formula for controlling the look and feel of a checkbox. No JavaScript.
Blog post: Checkbox Trickery with CSS
| <!-- | |
| Checkbox Trickery with CSS: | |
| http://codersblock.com/blog/checkbox-trickery-with-css/ | |
| --> | |
| <div class="container"> | |
| <input id="toggle1" type="checkbox" checked> | |
| <label for="toggle1">Toggle me!</label> | |
| <input id="toggle2" type="checkbox"> | |
| <label for="toggle2">Hey, me too!</label> | |
| <input id="toggle3" type="checkbox"> | |
| <label for="toggle3">Toggle party!</label> | |
| </div> |
| @import url(http://fonts.googleapis.com/css?family=Noto+Sans); | |
| *, *::before, *::after { | |
| box-sizing: border-box; | |
| } | |
| html { | |
| min-height: 100%; | |
| } | |
| body { | |
| color: #435757; | |
| background: radial-gradient(#fff, #dac4cd); | |
| font: 1.4em/1 'Noto Sans', sans-serif; | |
| } | |
| .container { | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| transform: translate(-50%, -50%); | |
| } | |
| input { | |
| position: absolute; | |
| left: -9999px; | |
| } | |
| label { | |
| display: block; | |
| position: relative; | |
| margin: 20px; | |
| padding: 15px 30px 15px 62px; | |
| border: 3px solid #fff; | |
| border-radius: 100px; | |
| color: #fff; | |
| background-color: #6a8494; | |
| box-shadow: 0 0 20px rgba(0, 0, 0, .2); | |
| white-space: nowrap; | |
| cursor: pointer; | |
| user-select: none; | |
| transition: background-color .2s, box-shadow .2s; | |
| } | |
| label::before { | |
| content: ''; | |
| display: block; | |
| position: absolute; | |
| top: 10px; | |
| bottom: 10px; | |
| left: 10px; | |
| width: 32px; | |
| border: 3px solid #fff; | |
| border-radius: 100px; | |
| transition: background-color .2s; | |
| } | |
| label:first-of-type { | |
| transform: translateX(-40px); | |
| } | |
| label:last-of-type { | |
| transform: translateX(40px); | |
| } | |
| label:hover, input:focus + label { | |
| box-shadow: 0 0 20px rgba(0, 0, 0, .6); | |
| } | |
| input:checked + label { | |
| background-color: #ab576c; | |
| } | |
| input:checked + label::before { | |
| background-color: #fff; | |
| } |
Toogle me :-)