O CSS é o mecanismo utilizado pelos navegadores para informar a estes como deve ser exibido determinado elemento HTML. Desde a versão 3 muitas coisas novas permitiram que a web fosse cada vez bonita e funcional.
Eu estava um pouco cansado do trabalho e para relaxar fiquei pensando em uma solução simples para simular um Switch ON/OFF que pudesse ser aplicado no lugar de um checkbox. E, para isso, usei simplesmente CSS3 e pseudoclasses:
Basicamente, pseudoclasses nos permitem adicionar instruções específicas de acordo com determinados comportamentos ou condições dos elementos HTML. Neste pequeno exemplo, eu usei a pseudoclasse :checked, para verificar se está marcado ou não, e as que adicionam complementos antes e depois do elemento, são as :before e :after, respectivamente.
Mas o que você quer mesmo é o código, então para ficar fácil de você pegar, basta clicar visualizar o exemplo abaixo no JsFiddle:
Agora, se tudo o que você quer é o código puro, segue abaixo:
HTML e CSS
xxxxxxxxxx
<div class="check-radio">
<input type="checkbox"/>
</div>
xxxxxxxxxx
/**
* CSS do componente
**/
.check-radio{
position: relative;
}
.check-radio input{
appearance: none;
appearance: none;
background-color: #eee;
width: 40px;
height: 15px;
border-radius: 10px;
box-shadow: inset 0 1px 5px rgba(0,0,0,.5);
}
.check-radio input:focus{
outline: none;
cursor: pointer;
}
.check-radio input:before{
content: '';
margin-top: -2.5px;
display: block;
width: 20px;
height: 20px;
background-color: white;
border-radius: 50%;
box-shadow: inset 0 0 0 2px #333, 0 2px 5px rgba(0,0,0,.5);
position: absolute;
left: 0;
transition: left .3s ease-out;
transition: left .3s ease-out;
}
.check-radio input:after{
content: 'FF';
display: block;
margin-top: -2.5px;
left: 20px;
position: absolute;
font-size: 14px;
font-weight: bold;
transition: left .3s ease-out;
transition: left .3s ease-out;
color: #666;
}
.check-radio input:checked{
background-color: lime;
}
.check-radio input:checked:before{
left: 22.5px;
box-shadow: inset 0 0 0 2px green, 0 2px 5px rgba(0,0,0,.5);
}
.check-radio input:checked:after{
content: 'N';
left: 43.5px;
color: green;
}
Por hoje é só… esse post foi rapidinho… Se gostou, compartilhe e nos siga nas redes sociais. VelhoBit, no Facebook, Twitter e Instagram.