Creating custom radio buttons with CSS requires a combination of HTML and CSS. First, we will build the basic structure in HTML and then style it with CSS. Here’s an example of how you would do that:
HTML:
```
```
CSS:
```
/* Hide the default radio button */
.container input {
position: absolute;
opacity: 0;
cursor: pointer;
}
/* Create a custom radio button */
.checkmark {
position: relative;
top: 0;
left: 0;
height: 25px;
width: 25px;
background-color: #eee;
border-radius: 50%;
}
/* On mouse-over, add a grey background color */
.container:hover input ~ .checkmark {
background-color: #ccc;
}
/* When the radio button is checked, add a blue background */
.container input:checked ~ .checkmark {
background-color: #2196F3;
}
/* Create the indicator (the dot/circle – hidden when not checked) */
.checkmark:after {
content: “”;
position: absolute;
display: none;
}
/* Show the indicator (dot/circle) when checked */
.container input:checked ~ .checkmark:after {
display: block;
}
/* Style the indicator (dot/circle) */
.container .checkmark:after {
top: 9px;
left: 9px;
width: 8px;
height: 8px;
border-radius: 50%;
background: white;
}
```
This example will create a set of custom radio buttons that change colors when hovered over and checked, replacing the browser default style. It uses the `~` selector in CSS to style the sibling span elements (with the class `checkmark`) when the preceding input element is checked.