使用label失效的原因

1.首先检查自己的id有没有加唯一的参, 否则会出现只有第一个id生效的情况, 因为这个问题, 曾经改了两天列表也没想起来改这个id ,而且还有两次同样的错   T-T

<input type="checkbox" id="'+value.id+'idname">
<label for="'+value.id+'idname"></label><input type="checkbox" id="${value.id}idname">
<label for="${value.id}idname"></label>

2.当图片display:inline-block;也不显示的时候, 你可能需要改变一下label的位置, 尽量别包围input, 最好放在input下面

<input type="checkbox" id="+value.id+">
<label for="+value.id+ "></label>

 或者是<label>包围input, 用<span>来设点击背景时, span需要在<input>下面

<label class="my_label">
       <input class="protocol" type="checkbox" />
       <span></span>
       其他内容
</label>

以下是使用相似的<>label>包围input等内容的源码, 效果是这样的:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            input[type="radio"]{/*隐藏掉radio,或者直接<input>标签里写hidden*/
                appearance: none; 
                -webkit-appearance: none;
                outline: none;
                display:none;
            }
            label{
                width:100px;
                height:100px;
                display:inline-block;
            }
            /*未选中时*/     
            label input[type="radio"] + span{
                width:44px;
                height:45px;
                display:inline-block;
                background:url(images/check.png) no-repeat;/*这个图是点击按钮上下排列在一起的精灵图*/
                background-position:0 0;
            }
           /*选中checkbox时,更改背景图片位置*/            
            label input[type="radio"]:checked + span{
                background-position:0 -44px;
            }
        </style>
        <style>
            label{
                width:100px;
                height:100px;
                display:inline-block;
            }
            /*未选中时*/        
           .my_protocol .input_agreement_protocol+span {
                width: 88px;
                height: 88px;
                display: inline-block;
                background: url(images/checkedn.png) no-repeat;    /*两张图片来回切换*/                  
            }
           /*选中checkbox时,更改背景图片*/            
           .my_protocol .input_agreement_protocol:checked+span {
                background-image: url(images/checkedy.png);
            }
        </style>
    </head>
    <body>
        <div>两个方法一个radio一个check</div>
        
        <label><input type="radio" name="paytype-wj"><span></span>方法1</label>
        <label><input type="radio" name="paytype-wj"><span></span>方法1</label>
        <label><input type="radio" name="paytype-wj"><span></span>方法1</label>
        
        <div style="clear: both;">换行</div>
        
        <label class="my_protocol">
            <input class="input_agreement_protocol" type="checkbox" hidden/> <!--或者css里面写隐藏本身的样式-->
            <span></span>
                  方法2
        </label>
    </body>
</html>
原文地址:https://www.cnblogs.com/wangduojing/p/11208502.html