Element-UI水平菜单el-menu在PC端和移动端如何适配及调整标签大小?

Element-UI水平菜单el-menu在PC端和移动端如何适配及调整标签大小?

element-ui水平菜单el-menu:pc端与移动端适配及标签大小调整

Element-UI的el-menu组件功能强大,但在PC端和移动端的适配上,开发者常常需要额外处理。本文将探讨mode=”horizontal”模式下,如何调整菜单标签大小,以及如何处理PC端悬停展开、移动端点击展开的差异。

问题:

使用mode=”horizontal”的el-menu,在PC端,菜单项悬停展开,离开关闭,符合预期。但在移动端,此交互失效,需点击展开子菜单,点击其他区域关闭。此外,开发者也希望能够调整菜单标签大小。

代码示例:

以下代码展示了一个包含一级和二级菜单的水平el-menu。PC端正常,但移动端子菜单展开/关闭需要点击操作。

<el-menu :ellipsis="ellipsis" active-text-color="#ffd04b" background-color="#1b80e9" class="el-menu-demo" mode="horizontal" ref="menu" text-color="#fff">   <el-menu-item index="0">     <a target="_blank">首页</a>   </el-menu-item>   <el-menu-item index="1">     <a target="_blank">活动消息</a>   </el-menu-item>   <el-sub-menu index="2">     <template #title>全民健身</template>     <el-menu-item index="2-1">游泳馆简介</el-menu-item>     <el-menu-item index="2-2">收费公示</el-menu-item>     <el-menu-item index="2-3">服务人员公示</el-menu-item>     <el-menu-item index="2-4">规章制度公示</el-menu-item>   </el-sub-menu> </el-menu>
methods: {   handleOpen(key, keyPath) {     console.log("open: key=" + key, "keyPath=" + keyPath);   },   handleClose(key, keyPath) {     console.log("close: key=" + key, "keyPath=" + keyPath);   } }

解决方案:

  • 菜单标签大小调整: 使用css样式控制字体大小(font-size)和内边距(padding)。 例如:
.el-menu-demo .el-menu-item {   font-size: 14px;   padding: 0 15px; }
  • 移动端适配 el-menu在移动端自动切换为点击展开模式,这是其响应式设计的一部分,并非错误。若需在移动端保持PC端的悬停效果,需自定义组件或考虑其他UI库。 可以使用媒体查询根据屏幕宽度调整样式,例如:
@media (max-width: 768px) {   .el-menu-demo {     /* 移动端样式 */   } }

通过CSS样式调整和响应式设计,可以有效解决el-menu在不同设备上的显示和交互问题,从而提升用户体验。 如果需要更复杂的交互逻辑,则需要考虑自定义组件或使用其他更灵活的UI组件。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享