标签导航:

ant design vue中:如何解决折叠面板嵌套radio group导致样式异常的问题?

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样式异常的问题,使其正确显示在折叠面板内容之外。