自定义checkbox和radio

基于原生的checkbox和radio在网页中显示比较丑,所以我们追求美观的同时不能忍受丑陋的勾选框。

实现办法有两种办法:

  1. 用css来实现
  2. 用背景图来实现

原理:通过伪类:checked和伪元素::after来实现的

一、用css来实现(减少图片对http的请求)

      input[type=radio], input[type=checkbox] {
      visibility: hidden;
    }

    input[type=checkbox]::after, input[type=radio]::after {
      border-radius: 50%;
      display: inline-block;
      width: 16px;
      height: 16px;
      line-height: 16px;
      content: ' ';
      border: 1px solid #000;
      visibility: visible;
    }

    input[type=radio]:checked::after, input[type=checkbox]:checked::after {
      display: inline-block;
      border-radius: 50%;
      width: 16px;
      height: 16px;
      line-height: 16px;
      content: ' ';
      background: #d73d32;
      border: none;
      visibility: visible;
    }

二、背景图来实现勾选效果(还原度较高)

        input[type=radio]{
            visibility: hidden;
        }
        input[type=radio]:checked::after{
            background-image: url('./img/sprite.png');
            background-repeat: no-repeat;
            background-position: -59px -10px;
            visibility: visible;
        }
        input[type=radio]::after{
            content: ' ';
            display: block;
            height: 20px;
            width: 20px;
            background-image: url('./img/sprite.png');
            background-repeat: no-repeat;
            background-position: -24px -10px;
            visibility: visible;
        }
        input[type=checkbox]{
            visibility: hidden;
        }

        input[type=checkbox]:checked::after{
            background-image: url('./img/sprite.png');
            background-repeat: no-repeat;
            background-position: -60px -31px;
            visibility: visible;
        }
        input[type=checkbox]::after{
            content: '';
            display: block;
            height: 20px;
            width: 20px;
            background-image: url('./img/sprite.png');
            background-repeat: no-repeat;
            background-position: -25px -32px;
            visibility: visible;
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容