zoukankan      html  css  js  c++  java
  • [HTML/CSS]自定义input[type="radio"]的样式

    对单选按钮自定义样式,我们以前一直用的脚本来实现,不过现在可以使用新的伪类 :checkbox 来实现。

    思路:

    1. 可以为<label>元素添加生成性内容(伪元素),并基于单选按钮的状态来为其设置样式;

    2. 然后把真正的单选按钮隐藏起来;

    3. 最后把生成内容美化一下。

    解决办法:

    1. 一段简单的结构代码:

    <div class="female">
        <input type="radio" id="female" name="sex" />
        <label for="female"></label>
    </div>
    <div class="male">                
        <input type="radio" id="male" name="sex" />
        <label for="male"></label>
    </div>

    2. 生成一个伪元素,作为美化版的单选按钮,先给伪元素添加一些样式:

    input[type="radio"] + label::before {
        content: "a0"; /*不换行空格*/
        display: inline-block;
        vertical-align: middle;
        font-size: 18px;
        width: 1em;
        height: 1em;
        margin-right: .4em;
        border-radius: 50%;
        border: 1px solid #01cd78;
        text-indent: .15em;
        line-height: 1; 
    }

    现在的样子:

    3. 给单选按钮的勾选状态添加不同的样式: 

    input[type="radio"]:checked + label::before {
        background-color: #01cd78;
        background-clip: content-box;
        padding: .2em;
    }

    现在的样子:

    4. 现在把原来的单选按钮隐藏:

    input[type="radio"] {
        position: absolute;
        clip: rect(0, 0, 0, 0);
    }

    现在的样子:

    P.S:

    隐藏原来的单选按钮时,如果使用 display: none; 的话,那样会把它从键盘 tab 键切换焦点的队列中完全删除。

    于是可采用剪切的方式,让剪切后的尺寸为零,这样就隐藏了原来的单选按钮。

    文章引用于 https://www.cnblogs.com/xinjie-just/p/5911086.html

  • 相关阅读:
    ural(Timus) 1019 Line Painting
    ACMICPC Live Archive 2031 Dance Dance Revolution
    poj 3321 Apple Tree
    其他OJ 树型DP 选课
    poj 3548 Restoring the digits
    ACMICPC Live Archive 3031 Cable TV Network
    递归循环获取指定节点下面的所有子节点
    手动触发asp.net页面验证控件事件
    子级Repeater获取父级Repeater绑定项的值
    没有列名的数据绑定
  • 原文地址:https://www.cnblogs.com/SoYang/p/14806590.html
Copyright © 2011-2022 走看看