自定义单选框样式方法

当遇到默认单选框样式不满意时,可以利用label与input的绑定,通过隐藏单选框并显示伪元素来实现样式自定义。通过:checked选择器,可以控制用户点击后伪元素的内容或样式变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

元素的初始样式都不怎么好看,我们一般修改样式会想到直接在那元素上添加样式,比如background、border等,在大多数元素上是可以这么做,但当遇上了单选框会毫无反应。

例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>style无法直接修改单选框样式</title>
    <style>
        .radio{
            width: 100px;
            height: 100px;
            background-color: red;
        }
    </style>
</head>
<body>
<input type="radio" class="radio"/>
</body>
</html>

在这里插入图片描述

怎么解决呢?

使用label进行伪元素(或一些标签,比如i,em,span等)和input绑定,隐藏单选框,显示伪元素,且使用css选择器:checked进行点击后伪元素(或绑定标签)内容(或样式)的修改。

以下例子只是修改伪元素的内容。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>修改单选框样式</title>
    <style>
        /*.radio{*/
        /*width: 100px;*/
        /*height: 100px;*/
        /*background-color: red;*/
        /*}*/
        .radio {
            display: none;
        }
		/* +代表相邻的元素 */
        .radio + i {
            font-style: normal;
            text-align: center;
            font-size: 16px;
        }
		/* ::after伪元素,使用伪元素,必须含有content属性,可以为'',但不可不写 */
        .radio + i::after {
            content: '☆';
        }
		/* 点击后伪元素内容变化 */
        .radio:checked + i::after {
            content: '★';
        }
    </style>
</head>
<body>
<label>
    <input type="radio" class="radio" name="aa" id="aa"/>
    <i></i>
    aa
</label>
<label>
    <input type="radio" class="radio" name="aa" id="bb"/>
    <i></i>
    bb
</label>
</body>
</html>

完成后的结果
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值