There is a way to customize the radios buttons with only css3. it has cross browser support because thse days almost all the web browsers support it.
What it does is hiding the default radio buttons and using CSS Pseudo-elements adding some stylish buttons.
The working code is below
HTML
<div class="alert"> <ul> <li> <input type="radio" id="f-option" name="selector"> <label for="f-option">Pizza</label> <div class="check"></div> </li> <li> <input type="radio" id="s-option" name="selector"> <label for="s-option">Bacon</label> <div class="check"><div class="inside"></div></div> </li> <li> <input type="radio" id="t-option" name="selector"> <label for="t-option">Cats</label> <div class="check"><div class="inside"></div></div> </li> </ul> </div>
CSS
ul li{ color: #AAAAAA; display: block; position: relative; float: left; width: 100%; height: 50px; } ul li input[type=radio]{ position: absolute; visibility: hidden; } ul li label{ display: block; position: relative; font-weight: 300; font-size: 1.35em; padding: 25px 25px 25px 80px; margin: 10px auto; height: 30px; z-index: 9; cursor: pointer; -webkit-transition: all 0.25s linear; } ul li:hover label{ color: #dedede; } ul li .check{ display: block; position: absolute; border: 5px solid #AAAAAA; border-radius: 100%; height: 25px; width: 25px; top: 30px; left: 20px; z-index: 5; transition: border .25s linear; -webkit-transition: border .25s linear; } ul li:hover .check { border: 5px solid #dedede; } ul li .check::before { display: block; position: absolute; content: ''; border-radius: 100%; height: 15px; width: 15px; top: 5px; left: 5px; margin: auto; transition: background 0.25s linear; -webkit-transition: background 0.25s linear; } input[type=radio]:checked ~ .check { border: 5px solid #0DFF92; } input[type=radio]:checked ~ .check::before{ background: #0DFF92; } input[type=radio]:checked ~ label{ color: #0DFF92; }
No comments:
Post a Comment