You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除Vuetify 3中v-expansion-panel选中项的高亮边框?

移除Vuetify 3手风琴激活项的点击高亮边框

你遇到的高亮是手风琴面板被点击后获得焦点时的默认样式,以下几种方法可以实现点击项时直接隐藏该高亮:

方法一:点击后手动失焦

你已经在面板上绑定了@click="LoseFocus",只需在组件中实现这个方法,让面板内部的可聚焦元素失去焦点即可:

组合式API(Vue 3)

<script setup>
import { ref } from 'vue'
const openedPanel = ref(null)

const LoseFocus = (event) => {
  // 定位到手风琴面板内的可聚焦元素并失焦
  const focusEl = event.currentTarget.querySelector('[tabindex]')
  focusEl?.blur()
}
</script>

选项式API

<script>
export default {
  data() {
    return {
      openedPanel: null
    }
  },
  methods: {
    LoseFocus(event) {
      const focusEl = event.currentTarget.querySelector('[tabindex]')
      if (focusEl) focusEl.blur()
    }
  }
}
</script>

方法二:CSS直接覆盖焦点样式

如果不想通过JS处理,可以用CSS深度选择器覆盖Vuetify的默认焦点样式(若使用scoped样式,必须加::v-deep):

<style scoped>
/* 移除所有手风琴面板的焦点高亮 */
::v-deep .v-expansion-panel:focus-within {
  outline: none !important;
  box-shadow: none !important;
}

/* 仅移除激活状态面板的焦点高亮 */
::v-deep .v-expansion-panel--active:focus-within {
  outline: none !important;
  box-shadow: none !important;
}
</style>

方法三:结合自定义类优化

你已经给面板绑定了自定义类atom-accordion-active,可以在这个类里针对性移除焦点样式:

<style scoped>
::v-deep .atom-accordion-active :focus {
  outline: none;
  box-shadow: none;
}
</style>

注意:方法二和三会移除焦点样式,若需要保留键盘导航的可访问性,优先选择方法一。

内容的提问来源于stack exchange,提问作者developerMD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 03:46:31