纯css修改radio样式

<!DOCTYPE html>
<html>
<head>
    <title>radio demo</title>
    <style>
        div,ul,li {
            padding: 0;
            margin: 0;
        }
        li {
            position: relative;
            height: 30px;
            margin-bottom: 10px;
        }
        .my-radio {
            position: relative;
            z-index: 1;
        }
        .my-radio:checked::after {
            content: '';
        }
        .my-radio::before {
            content: '';
            position: absolute;
            width: 12px;
            height: 12px;
            border-radius: 50%;
            background-color: #fff;
            border: 2px solid blue;
        }
        .my-radio::after {
            position: absolute;
            top: 4px;
            left: 4px;
            background-color: blue;
            width: 8px;
            height: 8px;
            border-radius: 50%;
        }
        .radio-label {
            display: inline-block;
            border: 1px solid blue;
            width: 100px;
            height: 30px;
            position: absolute;
            left: 0;
            top: 0;
        }
        .my-radio:checked + .radio-label {
            border-color: red;
            background-color: #ccc;
        }
    </style>
</head>
<body>
    <p style="color: red;">注:这里如果radio加id,label标签for属性指向id则可以点击label是radio触发</p>
    <p style="color: red;">如果不通过id来关联,则是需要直接点击radio才产生效果</p>
    <ul>
        <li>
            <input type="radio" id="radio1" class="my-radio" name="demo" />
            <label class="radio-label" for="radio1"></label>
        </li>
        <li>
            <input type="radio" id="radio2" class="my-radio" name="demo" />
            <label class="radio-label" for="radio2"></label>
        </li>
        <li>
            <input type="radio" id="radio3" class="my-radio" name="demo" />
            <label class="radio-label" for="radio3"></label>
        </li>
        <li>
            <input type="radio" id="radio4" class="my-radio" name="demo" />
            <label class="radio-label" for="radio4"></label>
        </li>
        <li>
            <input type="radio" id="radio5" class="my-radio" name="demo" />
            <label class="radio-label" for="radio5"></label>
        </li>
    </ul>
</body>
</html>

  效果如下:

radio demo

注:这里如果radio加id,label标签for属性指向id则可以点击label是radio触发

如果不通过id来关联,则是需要直接点击radio才产生效果

posted @ 2020-01-20 11:23  居无常  阅读(4280)  评论(0编辑  收藏  举报