CSS如何制作响应式导航菜单_结合Grid布局实现水平平铺导航

张开发
2026/4/12 18:12:59 15 分钟阅读

分享文章

CSS如何制作响应式导航菜单_结合Grid布局实现水平平铺导航
Grid导航项水平平铺需用repeat(auto-fit, minmax(120px, 1fr)))auto-fit合并空轨道minmax确保最小宽度与弹性分配移动端须加touch-action: manipulation和cursor: pointer对齐优先用flex而非align-itemsIE11不支持auto-fit/minmax需supports降级为inline-block。Grid布局下导航项不水平平铺检查grid-template-columns是否设为repeat(auto-fit, minmax(120px, 1fr)))Grid实现水平平铺的关键不是display: grid本身而是列模板如何响应容器宽度。用repeat(auto-fill, 1fr)会导致小屏下强行等分、文字被压缩而auto-fit配合minmax()才能真正“能放几个放几个”。常见错误现象nav在手机上变成单列堆叠、中间留白或文字溢出截断。必须用auto-fit不是auto-fill它会合并空轨道minmax(120px, 1fr)中120px是单个菜单项最小宽度低于此值就收缩换行1fr是最大可占比例确保均分剩余空间父容器需设width: 100%或max-width否则Grid可能按内容撑开失去响应行为移动端点击无反应touch-action: manipulation和cursor: pointer不能少Grid布局本身不解决交互问题。iOS Safari对非a/a或button元素的点击区域识别较弱尤其当菜单项用div包裹时容易出现点不动、延迟300ms响应的情况。使用场景导航项是div或span而非语义化标签时。立即学习“前端免费学习笔记深入”给每个导航项加cursor: pointer触发浏览器对可点击元素的默认识别加上touch-action: manipulation禁用双击缩放同时加速触摸响应避免在:hover里只改颜色——移动端没hover得同步写:active和focus-within菜单高度塌陷或文字垂直不对齐align-items和line-height要协同控制Grid容器默认align-items: stretch但导航文字常因字体度量差异如font-size与line-height不匹配导致上下留白不均看起来像没居中。 WisPaper 复旦大学研发的AI学术搜索工具5分钟内筛选1000篇论文

更多文章