普通html和vue单选框的样式,vue2实现自定义样式radio单选框

先上效果

205b7bbe22740a88be246a0337327889.png

<div class="reply">

主编已回复:

<div class="radio-box" v-for="(item,index) in radios" :key="item.id">

<span class="radio" :class="{'on':item.isChecked}"></span>

<input v-model="radio" :value="item.value" class="input-radio" :checked='item.isChecked' @click="check(index)" type="radio">{{item.label}}

</div>

</div>

js:

data() {

return {

radio: '1',

radios:[

{

label: '是',

value:'1',

isChecked: true,

},

{

label: '否',

value:'2',

isChecked: false,

},

{

label: '全部',

value:'3',

isChecked: false,

},

]

}

},

methods: {

check(index) {

// 先取消所有选中项

this.radios.forEach((item) => {

item.isChecked = false;

});

//再设置当前点击项选中

this.radio = this.radios[index].value;

// 设置值,以供传递

this.radios[index].isChecked = true;

console.log(this.radio);

}

}

样式:

.radio-box{

display: inline-block;

position: relative;

height: 25px;

line-height: 25px;

margin-right: 5px;

}

.radio {

display: inline-block;

25px;

height: 25px;

vertical-align: middle;

cursor: pointer;

background-image: url(../../../common/images/radio.png);

background-repeat: no-repeat;

background-position: 0 0;

}

.input-radio {

display: inline-block;

position: absolute;

opacity: 0;

25px;

height: 25px;

cursor: pointer;

left: 0px;

outline: none;

-webkit-appearance: none;

}

.on {

background-position: -25px 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值