例如外卖服务区域,选择时为多选,且一般隐藏checkbox样式框。只留下label字体和设置的外边框来进行选中样式控制,以此来提高用户体验。
这时要对checkbox进行处理
我总结的一个方法就是根据checked去进行设置
例子:
桥西区
这里我把checkbox和label写在p标签里,这样既可以实现点击文字选中。
选中后样式控制:/*选矿*/
.select-ul li p label,
.type-list-ul li p label{
font-size: 0.28rem;color: #666;
width: 100%;height: 100%;display: inline-block;
border-color: #666;
border-style: solid;
border-width: 1px;
border-radius: 0.1rem;
}
.type-list-ul li p label{width: auto;padding: 0 0.1rem;}
.select-ul li p{
height: 0.5rem;
width: 1.5rem;
display: inline-block;
line-height: 0.5rem;
}
.type-list-ul li p{
/*padding: 0 0.1rem;*/
height: 0.5rem;
/* width: 1.5rem; */
display: inline-block;
line-height: 0.5rem;
}
.select-ul li p input[type=checkbox]:checked + label,
.type-list-ul p input[type=checkbox]:checked + label{
border-color: #FA8072;
color: #FA8072;
}
总结就是我通过.select-ul li p input[type=checkbox]:checked + label{}
来控制样式,
一般区域选择都会使checkbox样式隐藏,只留下字体框,点击后变色来提高用户体验
拓展:
在做网页的时候一般会有一个需求:点击一段文字信息的同时选中某个checkbox
旧处理方式是在这段文字上加上点击事件触发checkbox的选中事//jq中:
//选中$("#ID").attr("checked","checked");//不选中$("#ID").removeAttr("checked");
//js中: var boxes = document.getElementsByName("test"); boxes[i].checked = true;
这里提供一种便利的方法:
其他
将input和label放在同一个标签p中同时lable的for属性的值等于input的id属性值就可以实现点击label同时控制input