1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Html修改radio单选框样式 通过js绑定label与input关系 不使用id

Html修改radio单选框样式 通过js绑定label与input关系 不使用id

时间:2021-07-20 13:27:03

相关推荐

Html修改radio单选框样式 通过js绑定label与input关系 不使用id

修改radio单选框样式

前言效果图一、样式改动思路二、通过js绑定label和input关系三、完整代码

前言

在使用表单元素单选框的时候,根据需求可能需要修改默认的单选框样式

效果图

一、样式改动思路

隐藏掉单选框input的默认样式,然后在label前面加上自定义的伪元素

二、通过js绑定label和input关系

input单选框选中是标签属性checked控制的,通过DOM操作,改变元素的checked属性值,做到绑定的效果

三、完整代码

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><style>div>input {display: none;}div>label {position: relative;margin-right: 34px;}div>label::before {display: inline-block;content: "";width: 16px;height: 16px;border-radius: 50%;border: 1px solid rgb(219, 219, 219);margin-right: 6px;vertical-align: bottom;}div>input:checked+label::before {background-color: rgb(239, 66, 56);}div>input:checked+label::after {display: inline-block;content: "";width: 6px;height: 6px;border-radius: 50%;position: absolute;left: 6px;bottom: 6px;background-color: white;}</style></head><body><div><div class="radiobox" onclick="label(event)"><input type="radio" name="paixu" checked /><label style="cursor: pointer" @click="点击">按热门排序</label> </div><div class="radiobox" onclick="label(event)"><input type="radio" name="paixu" /> <label style="cursor: pointer">按评价排序</label> </div><div class="radiobox" onclick="label(event)"><input type="radio" name="paixu" /> <label style="cursor: pointer">按时间排序</label> </div></div></body><script type="text/javascript">function label(e) {if (e.target.tagName === "LABEL") {const arr = document.querySelectorAll("input");arr.forEach((item) => {item.checked = false;});e.target.previousElementSibling.checked = true;console.log(e.target.previousElementSibling, "555");}if (e.target.tagName === "INPUT") {}console.log(e);console.log(e.target);}</script></html>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。