美文网首页让前端飞Web前端之路
做一个好看的单选和多选框(CSS查漏补缺)

做一个好看的单选和多选框(CSS查漏补缺)

作者: hijackli | 来源:发表于2019-06-21 01:32 被阅读2次

文: jack同学

jack同学

我们知道,单选框和复选框的样式几乎改变不了,原因是由于它们是可替换元素,样式更改权限较小,所以我们自己写一个简单好看的单选复选框

单选框
  • html部分代码
    <label>
        <input type="radio" name="sex">
        <span class="radio"></span>
        <span class="item">男</span>
    </label>
    <label>
        <input type="radio" name="sex">
        <span class="radio"></span>
        <span class="item">女</span>
    </label>

  • css部分代码
        label {
            font-size: 18px;
        }
        /* 把单选框隐藏 */
        label input[type="radio"] {
            display: none;
        }
        /* 自定义单选框初始样式 */
        label .radio {
            display: inline-block;
            position: relative;
            width: 16px;
            height: 16px;
            border-radius: 50%;
            border: 2px solid #777;
            vertical-align: -4px;
        }
        /* 自定义单选框选中样式 初始隐藏*/
        label .radio::after {
            content: "";
            width: 10px;
            height: 10px;
            position: absolute;
            left: 0;
            right: 0;
            top: 0;
            bottom: 0;
            margin: auto;
            background-color: #299;
            border-radius: 50%;
            display: none;
        }
        /* 显示自定义单选框 */
        label input[type="radio"]:checked+.radio::after {
            display: block;
        }
        /* 切换自定义单选框border颜色 */
        label input[type="radio"]:checked+.radio {
            border-color: #299;
        }

        /* 选中时,文本加颜色 */
        label input[type="radio"]:checked~.item {
            color: #199;
        }

  • 最终样式
jack同学
复选框
  • html部分
    <label>
        <input type="checkbox" name="num">
        <span class="checkbox">
            <i>&check;</i>
        </span>
        <span class="item">一</span>
    </label>
    <label>
        <input type="checkbox" name="num">
        <span class="checkbox">
            <i>&check;</i>
        </span>
        <span class="item">二</span>
    </label>
    <label>
        <input type="checkbox" name="num">
        <span class="checkbox">
            <i>&check;</i>
        </span>
        <span class="item">三</span>
    </label>
    <label>
        <input type="checkbox" name="num">
        <span class="checkbox">
            <i>&check;</i>
        </span>
        <span class="item">四</span>
    </label>

  • css部分
        label {
            font-size: 18px;
            margin: 0 10px;
        }

        /* 把多选框隐藏 */
        label input[type="checkbox"] {
            display: none;
        }

        /* 自定义多选框初始样式 */
        label .checkbox {
            display: inline-block;
            margin-right: 2px;
            position: relative;
            width: 16px;
            height: 16px;
            border: 2px solid #aaa;
            border-radius: 4px;
            vertical-align: -4px;
        }

        /* 自定义多选框选中样式 初始隐藏*/
        label .checkbox::after {
            content: "";
            width: 100%;
            height: 100%;
            position: absolute;
            left: 0;
            right: 0;
            top: 0;
            bottom: 0;
            margin: auto;
            z-index: -1;
            background-color: #299;
            display: none;
        }
        label .checkbox i {
            font-weight: bolder;
            position: absolute;
            left: 0;
            right: 0;
            top: 0;
            bottom: 0;
            margin: auto;
            color: #fff;
            font-size: 14px;
        }
        /* 显示自定义多选框 */
        label input[type="checkbox"]:checked+.checkbox::after {
            display: block;
        }

        /* 切换自定义多选框border颜色 */
        label input[type="checkbox"]:checked+.checkbox {
            border-color: #299;
        }

        /* 选中时,文本加颜色 */
        label input[type="checkbox"]:checked~.item {
            color: #199;
        }
  • 最终结果显示
jack同学
  • 勾勾图标√我使用的是实体元素 &check;如果想使用其它方法比如图片图标,或者使用js控制切换图标都可以,总体来说思想就是这样了

相关文章

  • 做一个好看的单选和多选框(CSS查漏补缺)

    文: jack同学 我们知道,单选框和复选框的样式几乎改变不了,原因是由于它们是可替换元素,样式更改权限较小,所以...

  • CSS查漏补缺

    1、相邻兄弟选择器 相邻兄弟选择器语法如下:E1 + E2,E2是选择器的对象,如果E1和E2在文档树中共享相同的...

  • css查漏补缺呀

    1、css中~和>~为所有相同的父元素中位于 p 元素之后的所有 ul 元素设置背景: 特点: 两种元素必须拥有相...

  • 【Android面试查漏补缺】之事件分发机制详解

    前言 查漏补缺,查漏补缺,你不知道哪里漏了,怎么补缺呢?本文属于【Android面试查漏补缺】系列文章第一篇,持续...

  • 补缺和查漏

    补缺和查漏,对学习过程中的不满意之处进行纠错,开展二次学习,使我们对于知识点的理解更深,对于问题的看法更成熟。 当...

  • html/css基础查漏补缺

    强调 斜体 更加强烈的强调 粗体 没有语义,单独设样式时使用 引用 长文本引用 地址信息 代码 大段代码 表格内容...

  • 元素分类(CSS查漏补缺)

    文: jack同学 第一种分类块元素 div / p / h1~h6 / ul / li / nav / hea...

  • 查漏补缺

    如果想让HTML5标签兼容低版本浏览器的话,可以使用 html5shiv js来实现。注意:一定要把它引入到前面。...

  • 查漏补缺

    图文环绕和浮动 最初的CSS只是用来写文章,熟练使用float和clear两个属性来布局: float属性:指定一...

  • 查漏补缺

    1.js字符串转换成数字与数字转换成字符串的实现方法https://www.2cto.com/kf/201612/...

网友评论

    本文标题:做一个好看的单选和多选框(CSS查漏补缺)

    本文链接:https://www.haomeiwen.com/subject/cjqeqctx.html