Ant Design Vue Radio按钮样式

在实际业务场景中也经常会用按钮样式的Radio,Ant Design也通过了该形式的单选组。 

Radio按钮样式

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>

例子