zoukankan      html  css  js  c++  java
  • 自定义 checkbox 和 radio

    在页面中我们经常会使用到 checkbox 和 radio,但是,部分浏览器显示的效果并不能让我们满意,因此想通过一种方式,更改其样式。
    这里使用到的就是使用 label,结合 before 实现样式的更改。
    完整代码:

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>定制checkbox 与 radio</title>
        <style>
            * {
                margin: 0;
                padding: 0;
                box-sizing: border-box;
                font-size: 1rem;
            }
    
            main {
                padding: 100px;
                display: flex;
                align-items: center;
            }
    
            input[type=checkbox],
            input[type=radio] {
                display: none;
            }
    
            input[type=checkbox]+label,
            input[type=radio]+label {
                margin-right: 10px;
                text-align: center;
                cursor: pointer;
                display: flex;
                align-items: center;
            }
    
            input[type=checkbox]+label::before,
            input[type=radio]+label::before {
                content: '';
                 1em;
                height: 1em;
                border: 1px solid #ccc;
                display: inline-block;
                box-sizing: border-box;
                padding: 2px;
                margin-right: 2px;
                border-radius: 2px;
                background-color: #fff;
            }
            input[type=radio]+label::before {
                border-radius: 2em;
            }
    
            input[type=checkbox]:checked+label::before,
            input[type=radio]:checked+label::before {
                background-color: green;
                background-clip: content-box;
                border-color: green;
            }
    
        </style>
    </head>
    
    <body>
        <main>
            <input type="checkbox" id="ck_1">
            <label for="ck_1">test</label>
            <input type="checkbox" id="ck_2" checked>
            <label for="ck_2">test</label>
            <input type="checkbox" id="ck_3">
            <label for="ck_3">test</label>
        </main>
        <main>
            <input type="radio" id="ra_1" name="aaa">
            <label for="ra_1">boy</label>
            <input type="radio" id="ra_2" name="aaa">
            <label for="ra_2">girl</label>
        </main>
    </body>
    
    </html>
    
    

    效果图:

    这样相比之前就好看那么一点点,如果引入字体图标,对 css 稍作更改,就能基本满足自己的需求了。

  • 相关阅读:
    第五周作业
    画图实例:一个计算机商店的基于Wed的订单处理系统的DFD图和ER图
    为什么要进行需求分析?通常对软件系统有哪些需求?
    面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里
    几大开发模式的区别与联系
    说说我的困惑
    Python单元测试——深入理解unittest
    Devexpress 自定义下拉列表
    Devexpress TextEdit设置文本只能输入数字
    jetbain软件授权码
  • 原文地址:https://www.cnblogs.com/Super-Lee/p/12550483.html
Copyright © 2011-2022 走看看