Vue+Tailwind导航栏下拉菜单无法覆盖输入框,链接点击失效
修复下拉菜单被输入字段遮挡的问题
问题核心是**层级(z-index)**设置不足:导航栏和下拉菜单的层级低于下方输入区域,导致下拉菜单被遮挡无法点击。按以下步骤修改即可解决:
1. 提升导航栏的层级
导航栏是sticky定位,需设置足够高的z-index,确保其包含的下拉菜单始终在页面其他元素之上。修改Navbar.vue中的header类:
<header class="sticky top-0 shadow-lg z-50">
2. 调整下拉菜单及遮罩的层级
下拉菜单需要比遮罩层层级更高,同时确保整体优先级高于页面其他内容。修改InventoryDropDown.vue(AdminDropDown.vue同理)中的遮罩和下拉容器:
<!-- 遮罩层设置z-40,低于下拉菜单层级 --> <button v-if="isOpen" @click="isOpen = false" tabindex="-1" class="fixed bg-black inset-0 h-full w-full opacity-40 z-40"></button> <!-- 下拉菜单设置z-60,确保在遮罩和输入框之上 --> <div v-if="isOpen" class="absolute left-0 mt-2 py-2 w-48 rounded-lg shadow-xl bg-white z-60">
原理说明
Tailwind预设的z-index类中,z-50属于较高层级,足以覆盖页面普通内容;下拉菜单设z-60是为了在遮罩层(z-40)之上,保证下拉选项能正常交互。修改后下拉菜单会完全覆盖下方输入字段,所有链接均可正常点击。
内容的提问来源于stack exchange,提问作者AnotherByte
相关产品推荐
相关产品推荐

