Я пытаюсь создать флажок, который выглядит как переключатель, используя только CSS, и сохраняя как можно больше, используя em
, так что его можно масштабировать до любого размера и по-прежнему хорошо выглядеть.Добавление переключателя checkbox в CSS
У меня есть один взгляд очень резкий, мне просто хотелось бы добавить текст внутри «ВКЛЮЧЕНО»/«ВЫКЛ» внутри самого коммутатора, и именно там мне нужна ваша помощь.
Вот что я до сих пор:
JSfiddle: https://jsfiddle.net/rcsngjhm/2/
.switch {
display: table-cell;
vertical-align: middle;
padding: 10px;
}
.cmn-toggle {
position: absolute;
margin-left: -9999px;
visibility: hidden;
}
.cmn-toggle + label {
display: block;
position: relative;
cursor: pointer;
outline: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
input.cmn-toggle-jwr + label {
width: 3em;
height: 1.5em;
background-color: #dddddd;
-webkit-border-radius: 1.5em;
-moz-border-radius: 1.5em;
-ms-border-radius: 1.5em;
-o-border-radius: 1.5em;
border-radius: 1.5em;
overflow: hidden;
}
input.cmn-toggle-jwr + label:before,
input.cmn-toggle-jwr + label:after {
display: block;
position: absolute;
top: 1px;
left: 1px;
bottom: 1px;
content: "";
}
input.cmn-toggle-jwr + label:before {
right: 1px;
background-color: #f1f1f1;
-webkit-border-radius: 1.5em;
-moz-border-radius: 1.5em;
-ms-border-radius: 1.5em;
-o-border-radius: 1.5em;
border-radius: 1.5em;
-webkit-transition: background 0.3s;
-moz-transition: background 0.3s;
-o-transition: background 0.3s;
transition: background 0.3s;
}
input.cmn-toggle-jwr + label:after {
width: 1.5em;
width: calc(1.5em - 2px);
background-color: #fff;
-webkit-border-radius: 100%;
-moz-border-radius: 100%;
-ms-border-radius: 100%;
-o-border-radius: 100%;
border-radius: 100%;
-webkit-box-shadow: 1px 0 3px rgba(0, 0, 0, 0.1);
-moz-box-shadow: 1px 0 3px rgba(0, 0, 0, 0.1);
box-shadow: 1px 0 3px rgba(0, 0, 0, 0.1);
-webkit-transition: margin 0.3s;
-moz-transition: margin 0.3s;
-o-transition: margin 0.3s;
transition: margin 0.3s;
}
input.cmn-toggle-jwr:checked + label:before {
background-color: #8ce196;
}
input.cmn-toggle-jwr:checked + label:after {
margin-left: 1.5em;
}
<div class="switch">
<input id="cmn-toggle-1" class="cmn-toggle cmn-toggle-jwr" type="checkbox">
<label for="cmn-toggle-1"></label>
</div>
Кроме того, если вы видите какой-либо способ, которым я могу очистить это немного больше, пожалуйста, дайте мне знать.
ли вы имеете в виду текст внутри переключателя? вроде как: http://jsfiddle.net/rcsngjhm/3/? – ochi
@ochi Да, вот так. Я просто должен был бы подстроить его, чтобы он выстроился правильно. EDIT: В идеале я бы хотел, чтобы текст оставался там, пока он не скрыт от переключателя (не исчезает) – JROB