在实际业务场景中也经常会用按钮样式的Radio,Ant Design也通过了该形式的单选组。
a-radio-group包裹a-radio-button实现按钮样式单选组
<template>
<div :style="{ marginTop: '16px' }">
<a-radio-group :default-value="value" @change="onChange">
<a-radio-button value="a">
杭州
</a-radio-button>
<a-radio-button value="b" disabled>
上海
</a-radio-button>
<a-radio-button value="c">
江西
</a-radio-button>
<a-radio-button value="d">
雷蒙德
</a-radio-button>
</a-radio-group>
</div>
</template>
<script>
export default {
data() {
return {
value: 'a', //默认值
};
},
methods: {
//选中事件
onChange(e) {
alert('checked = '+e.target.value);
},
},
};
</script>
例子
设置a-radio-group属性button-style="solid"来实现填充按钮样式
<template>
<div :style="{ marginTop: '16px' }">
<a-radio-group default-value="c" button-style="solid">
<a-radio-button value="a">
杭州
</a-radio-button>
<a-radio-button value="b" disabled>
上海
</a-radio-button>
<a-radio-button value="c">
江西
</a-radio-button>
<a-radio-button value="d">
雷蒙德
</a-radio-button>
</a-radio-group>
</div>
</template>
<template>
<div :style="{ marginTop: '16px' }">
<a-radio-group default-value="c" button-style="solid">
<a-radio-button value="a">
杭州
</a-radio-button>
<a-radio-button value="b" disabled>
上海
</a-radio-button>
<a-radio-button value="c">
江西
</a-radio-button>
<a-radio-button value="d">
雷蒙德
</a-radio-button>
</a-radio-group>
</div>
</template>
<style scoped>
/*自定义按钮填充色*/
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){
background-color: red;
border-color: red;
}
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {
z-index: 1;
color: red;
background: #fff;
border-color: red;
-webkit-box-shadow: -1px 0 0 0 red;
box-shadow: -1px 0 0 0 red;
}
</style>
例子