iPhone Toggle Switch
Demo
Are you interested in HTML5 Web Components? Check X-Switch - a similar toggle switch experiment, wrapped as a custom tag.
Checkboxes Example
Radiobuttons Example
Usage and Code Insight
<p>Are you interested in <a href="html5-web-components.html" target="_blank">HTML5 Web Components</a>? Check <a href="x-switch-html5-web-component.html" target="_blank">X-Switch</a> - a similar toggle switch experiment, wrapped as a custom tag.</p> <h4>Checkboxes Example</h4> <div class="iphone-toggle-buttons"> <ul> <li><label for="checkbox-0"><input type="checkbox" name="checkbox-0" id="checkbox-0" /><span>checkbox 0</span></label></li> <li><label for="checkbox-1"><input type="checkbox" name="checkbox-1" id="checkbox-1" checked="checked" /><span>checkbox 1</span></label></li> </ul> </div> <h4>Radiobuttons Example</h4> <div class="iphone-toggle-buttons"> <ul> <li><label for="radio-0"><input type="radio" name="radio-button-group-0" id="radio-0" checked="checked" /><span>radio 0</span></label></li> <li><label for="radio-1"><input type="radio" name="radio-button-group-0" id="radio-1" /><span>radio 1</span></label></li> <li><label for="radio-2"><input type="radio" name="radio-button-group-0" id="radio-2" /><span>radio 2</span></label></li> </ul> </div>
.iphone-toggle-buttons, .iphone-toggle-buttons *, .iphone-toggle-buttons *::before, .iphone-toggle-buttons *::after { -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; } .iphone-toggle-buttons input[type="checkbox"] + span::after, .iphone-toggle-buttons input[type="radio"] + span::after { content: "off"; } .iphone-toggle-buttons input[type="checkbox"]:checked + span::after, .iphone-toggle-buttons input[type="radio"]:checked + span::after { content: "on"; } .iphone-toggle-buttons { -moz-user-select: none; -webkit-user-select: none; user-select: none; } .iphone-toggle-buttons { margin: 4px 0; } .iphone-toggle-buttons label, .iphone-toggle-buttons input[type="checkbox"] + span, .iphone-toggle-buttons input[type="radio"] + span, .iphone-toggle-buttons input[type="checkbox"] + span::before, .iphone-toggle-buttons input[type="radio"] + span::before, .iphone-toggle-buttons input[type="checkbox"] + span::after, .iphone-toggle-buttons input[type="radio"] + span::after { display: inline-block; } .iphone-toggle-buttons label, .iphone-toggle-buttons input[type="checkbox"] + span, .iphone-toggle-buttons input[type="radio"] + span { vertical-align: middle; } .iphone-toggle-buttons input[type="checkbox"] + span, .iphone-toggle-buttons input[type="radio"] + span, .iphone-toggle-buttons input[type="checkbox"] + span::before, .iphone-toggle-buttons input[type="radio"] + span::before, .iphone-toggle-buttons input[type="checkbox"] + span::after, .iphone-toggle-buttons input[type="radio"] + span::after { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } .iphone-toggle-buttons input[type="checkbox"] + span::before, .iphone-toggle-buttons input[type="radio"] + span::before, .iphone-toggle-buttons input[type="checkbox"] + span::after, .iphone-toggle-buttons input[type="radio"] + span::after, .iphone-toggle-buttons input[type="checkbox"]:checked + span::before, .iphone-toggle-buttons input[type="radio"]:checked + span::before, .iphone-toggle-buttons input[type="checkbox"]:checked + span::after, .iphone-toggle-buttons input[type="radio"]:checked + span::after { top: 0; } .iphone-toggle-buttons input[type="checkbox"] + span::after, .iphone-toggle-buttons input[type="radio"] + span::after, .iphone-toggle-buttons input[type="checkbox"]:checked + span::before, .iphone-toggle-buttons input[type="radio"]:checked + span::before { right: 0; } .iphone-toggle-buttons input[type="checkbox"] + span::before, .iphone-toggle-buttons input[type="radio"] + span::before, .iphone-toggle-buttons input[type="checkbox"]:checked + span::after, .iphone-toggle-buttons input[type="radio"]:checked + span::after { left: 0; } .iphone-toggle-buttons input[type="checkbox"], .iphone-toggle-buttons input[type="radio"], .iphone-toggle-buttons input[type="checkbox"] + span::before, .iphone-toggle-buttons input[type="radio"] + span::before, .iphone-toggle-buttons input[type="checkbox"] + span::after, .iphone-toggle-buttons input[type="radio"] + span::after { position: absolute; } .iphone-toggle-buttons label { margin: 4px; cursor: pointer; } .iphone-toggle-buttons input[type="checkbox"], .iphone-toggle-buttons input[type="radio"] { filter: alpha(opacity=0); -moz-opacity: 0; -webkit-opacity: 0; opacity: 0; } .iphone-toggle-buttons input[type="checkbox"] + span, .iphone-toggle-buttons input[type="radio"] + span { width: 100px; height: 30px; font: bold 14px/30px Arial, Sans-serif; color: #8c8c8c; text-transform: uppercase; border: solid 1px #bcbbbb; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#c8c8c8", endColorstr="#f3f3f3"); background: -moz-linear-gradient(top, #c8c8c8, #f3f3f3); background: -webkit-linear-gradient(top, #c8c8c8, #f3f3f3); background: -o-linear-gradient(top, #c8c8c8, #f3f3f3); background: -ms-linear-gradient(top, #c8c8c8, #f3f3f3); background: linear-gradient(top, #c8c8c8, #f3f3f3); position: relative; text-indent: -9999px; } .iphone-toggle-buttons input[type="checkbox"] + span::before, .iphone-toggle-buttons input[type="radio"] + span::before { content: ""; width: 40%; height: 29px; border-top: solid 1px #fff; border-right: solid 1px #bebebe; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#cfcfcf", endColorstr="#f9f9f9"); background: -moz-linear-gradient(top, #cfcfcf, #f9f9f9); background: -webkit-linear-gradient(top, #cfcfcf, #f9f9f9); background: -o-linear-gradient(top, #cfcfcf, #f9f9f9); background: -ms-linear-gradient(top, #cfcfcf, #f9f9f9); background: linear-gradient(top, #cfcfcf, #f9f9f9); -moz-box-shadow: 1px 0 1px #bebebe; -webkit-box-shadow: 1px 0 1px #bebebe; box-shadow: 1px 0 1px #bebebe; } .iphone-toggle-buttons input[type="checkbox"] + span::after, .iphone-toggle-buttons input[type="radio"] + span::after { text-indent: 0; width: 62%; height: 32px; text-align: center; } .iphone-toggle-buttons input[type="checkbox"]:checked + span, .iphone-toggle-buttons input[type="radio"]:checked + span { filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#1b45bd", endColorstr="#5d96ea"); background: -moz-linear-gradient(top, #1b45bd, #5d96ea); background: -webkit-linear-gradient(top, #1b45bd, #5d96ea); background: -o-linear-gradient(top, #1b45bd, #5d96ea); background: -ms-linear-gradient(top, #1b45bd, #5d96ea); background: linear-gradient(top, #1b45bd, #5d96ea); color: #fff; text-shadow: -1px -1px #0d2046; } .iphone-toggle-buttons input[type="checkbox"]:checked + span::before, .iphone-toggle-buttons input[type="radio"]:checked + span::before { left: auto; -moz-box-shadow: -2px 0 1px #3a5e91; -webkit-box-shadow: -2px 0 1px #3a5e91; box-shadow: -2px 0 1px #3a5e91; } .iphone-toggle-buttons input[type="checkbox"]:checked + span::after, .iphone-toggle-buttons input[type="radio"]:checked + span::after { border-top: solid 1px #0f2a4f; border-bottom: solid 1px #0f2a4f; border-left: solid 1px #2c5496; height: 30px; top: -1px; left: -1px; -moz-border-radius: 4px 0 0 4px; -webkit-border-radius: 4px 0 0 4px; border-radius: 4px 0 0 4px; } .browser-support li.ie6, .browser-support li.ie7, .browser-support li.ie8 { display: none; }