Я пытаюсь создать легкий переключатель для использования в гибридном приложении для Android - вместо моих текущих усилий, которые основываются на сценариях, чтобы доставить свою магию. Вот то, что я достиг до сих порСоздание чистых переключателей для материала CSS3
.onoffBox
{
text-align:left !important;
padding:0.5em;
}
.onOffBox > span
{
display:inline-block;
width:90vw;
text-align:left !important;
color:white;
}
.inpOnOff
{
display:none;
}
.inpOnOff + label
{
width:10vw;
float:right;
background-color:silver;
border-radius:3vw;
height:3vw;
padding:0;
margin:0;
position:relative;
}
.inpOnOff + label:before
{
padding:0;
margin:0;
background-color:white;
content:'';
border-radius:5vw;
height:5vw;
width:5vw;
position:absolute;
left:0;
top:-1vw;
}
.inpOnOff:checked + label{background-color:aqua;}
.inpOnOff:checked + label:before
{
left:calc(100% - 5vw);
background-color:aqua;
}
body{background-color:black;}
<div class='onOffBox'>
<span>Hide Hints</span>
<input id='inpHideHints' class='inpOnOff' type='checkbox'/>
<label for='inpHideHints' id='lblHideHints'></label>
</div>
Отъезд this fiddle, чтобы увидеть это в действии.
Хотя это работает у меня есть две проблемы
- Я никогда не были слишком комфортно с
CSS float
, так что я не уверен, что мое использование здесь правильно - Вы заметите, что в
input:checked
состоянии я используюCSS calc
, чтобы позиционировать левую сторону псевдоэлементаlabel:before
. Учитывая, что все это для Android-гибридного webapp, я обеспокоен тем, что более ранние версии Android WebView могут не пониматьcalc
.
Я был бы очень признателен всем, кто мог бы предложить несколько улучшений или альтернатив здесь.
Спасибо! Можно ли каким-то образом использовать магию «указатель-события», чтобы все это реагировало на краны/клики в любом месте, то есть даже на тексте на l.h.s - Hide Hints в этом примере? – DroidOS
Это стандартное поведение для ярлыка ... Я изменил то, что было ярлыком для span и viceversa, и теперь он работает так, как вы хотите – vals