
Ant Design Vue折叠面板嵌套Radio Group样式问题及解决方案
在Ant Design Vue中,将a-radio-group组件嵌套在a-collapse(折叠面板)组件内时,可能会出现样式异常,a-radio-group被误认为是折叠面板的子面板。本文提供一种有效的解决方法。
问题描述:
当a-radio-group直接放置在a-collapse内时,它会继承折叠面板的样式,导致布局错乱,与预期效果不符。 以下是一个示例代码:
<template>
<div>
<a-collapse :default-active-key="activeKey" prefix-cls="s-accordion">
<a-collapse-panel header="introduction" key="introduction">
<p>introduction</p>
<a-radio-group style="margin: 16px" v-model:value="tab">
<a-radio-button value="tab1">tab1</a-radio-button>
<a-radio-button value="tab2">tab2</a-radio-button>
</a-radio-group>
</a-collapse-panel>
</a-collapse>
</div>
</template>
<script setup>
import { ref } from 'vue';
const activeKey = ref('introduction');
const tab = ref('process');
</script>解决方案:
为了避免样式冲突,只需用一个div元素包裹a-radio-group即可。修改后的代码如下:
<template>
<div>
<a-collapse :default-active-key="activeKey" prefix-cls="s-accordion">
<a-collapse-panel header="introduction" key="introduction">
<p>introduction</p>
<div>
<a-radio-group style="margin: 16px" v-model:value="tab">
<a-radio-button value="tab1">tab1</a-radio-button>
<a-radio-button value="tab2">tab2</a-radio-button>
</a-radio-group>
</div>
</a-collapse-panel>
</a-collapse>
</div>
</template>
<script setup>
import { ref } from 'vue';
const activeKey = ref('introduction');
const tab = ref('process');
</script>通过简单的添加一个div,即可解决a-radio-group样式异常的问题,使其正确显示在折叠面板内容之外。

