
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Custom Radio Buttons with CSS Appearance Property
We use the appearance property to style an element according to the platform-native style of the user's operating system.
Syntax
The syntax of CSS appearance property is as follows −
Selector { appearance: /*value*/; -webkit-appearance: /*value*/; /*for Safari and Chrome */ -moz-appearance: /*value*/; /*for Firefox */ }
Create a Custom Radio Button
To create a custom custom checkbox, we have set the following style with border-radius and appearance. The appearance is set to none −
input[type=radio] { appearance: none; -webkit-appearance: none; -moz-appearance: none; padding: 10px; background-color: orange; border-radius:50%; }
After the radio button is checked, the background color will change −
input[type=radio]:checked { background-color: magenta; }
The cursor will change when the radio button is hovered −
input[type=radio]:hover { cursor: pointer;
Example
The following examples illustrate custom radio button −
<!DOCTYPE html> <html> <head> <style> input[type=radio] { appearance: none; -webkit-appearance: none; -moz-appearance: none; padding: 10px; background-color: orange; border-radius:50%; } input[type=radio]:checked { background-color: magenta; } input[type=radio]:hover { cursor: pointer; } </style> </head> <body> <h1>Gender</h1><br/> <form> <label for="r1">Male</label> <input type="radio" id="r1" name="btn" value="v1"> <input type="radio" id="r2" name="btn" value="v2"> <label for="r2">Female</label> </form> </body> </html>
Create an Animated Custom Radio Button
To create an animated custom radio button, we will set the transition effect using the transition property. The transform property is also used. Before selecting any of the radio button, set the following style with transition-duration, property and timing −
input[type=checkbox] { appearance: none; -moz-appearance: none; -webkit-appearance: none; border: 3px ridge currentcolor; border-radius: 60px; box-sizing: content-box; color: lightblue; height: 60px; padding: 2px 2px 2px 2px; transition-duration: 280ms; transition-property: border-color, color; transition-timing-function: ease; width: 20px; }
While and after the checkbox is selected, the following style is set. The direction will change and the color as well −
input[type=checkbox]:checked { color: lightgreen; } input[type=checkbox]::after { background-color: currentcolor; border-radius: 10px 10px 10px 10px; content: ""; display: block; height: 20px; transform: translateY(0px); transition: transform 300ms ease-in; width: 20px ; } input[type=checkbox]:checked::after { transform: translateY(40px); }
Example
The following example illustrate an animated custom radio button −
<!DOCTYPE html> <html> <head> <style> label { display: flex; align-items: top; } label input { margin: 0px 10px 0px 10px; } input[type=checkbox] { appearance: none; -moz-appearance: none; -webkit-appearance: none; border: 3px ridge currentcolor; border-radius: 60px; box-sizing: content-box; color: lightblue; height: 60px; padding: 2px 2px 2px 2px; transition-duration: 280ms; transition-property: border-color, color; transition-timing-function: ease; width: 20px; } input[type=checkbox]:checked { color: lightgreen; } input[type=checkbox]::after { background-color: currentcolor; border-radius: 10px 10px 10px 10px; content: ""; display: block; height: 20px; transform: translateY(0px); transition: transform 300ms ease-in; width: 20px ; } input[type=checkbox]:checked::after { transform: translateY(40px); } </style> </head> <body> <p> Custom radio button example <label for="crb"> Blue <input id="crb" type="checkbox"/> <br/><br/><br/>Green </label> </p> </body> </html>