
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><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/ai/1026" title="闪念贝壳"><img
src="https://img.php.cn/upload/ai_manual/000/000/000/175680028066678.png" alt="闪念贝壳" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/ai/1026" title="闪念贝壳">闪念贝壳</a>
<p>闪念贝壳是一款AI 驱动的智能语音笔记,随时随地用语音记录你的每一个想法。</p>
</div>
<a href="/ai/1026" title="闪念贝壳" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</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>
</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样式异常的问题,使其正确显示在折叠面板内容之外。









