底部固定悬浮条应使用 position: fixed + bottom: 0 + left: 0 + right: 0 + z-index ≥ 100,并用 flex 布局均分选项卡,适配安全区需 padding-bottom: env(safe-area-inset-bottom),同时处理 active 状态同步与跨端兼容问题。

底部固定悬浮条用 position: fixed 最直接
想让菜单条始终贴在屏幕最底下、滚动不消失,position: fixed 是唯一可靠选择。绝对定位(absolute)或 sticky(position: sticky)在多数底部场景下会失效——前者依赖父容器高度,后者在滚动到底部时容易脱离约束。
关键样式必须写全:
-
position: fixed+bottom: 0+left: 0+right: 0 - 加
z-index(建议 ≥ 100),避免被其他弹层或广告遮挡 - 设
width: 100%或直接用left/right撑满,别只靠width: 100%—— 某些移动端浏览器对根元素宽度计算不准
选项卡布局推荐用 display: flex 均分按钮
底部菜单通常 3–5 个图标+文字,均分宽度且居中对齐,flex 比浮动或 inline-block 更稳。不要用 text-align: center 配合 inline-block,小屏下易换行错位。
实操要点:
- 容器设
display: flex、justify-content: space-around(或space-evenly) - 每个选项卡用
flex: 1并加max-width: 120px防止单项过宽 - 文字用
font-size: 12px(iOS Safari 小字渲染更清晰),图标建议用inline-block+vertical-align: top对齐基线 - 禁用默认
button或a的 outline 和 border,否则安卓 WebView 下常有蓝色边框残留
点击反馈和 active 状态要手动加 :active 和 class
移动端没有 hover,但用户需要明确知道点中了哪个项。纯 CSS 的 :active 在 iOS 上延迟高、持续时间短,必须配合 JS 切换 active 类。
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
常见坑:
- 没阻止
a标签默认跳转,导致页面刷新或跳页 —— 加event.preventDefault()或改用button元素 - active 样式只写了背景色,没配文字颜色反差,导致视觉无变化 —— 建议同时改
color和background-color - 多个选项卡共用同一份 JS 逻辑,但没清掉上一个
active—— 每次点击前先document.querySelectorAll('.tab-active').forEach(el => el.classList.remove('tab-active'))
兼容 iOS 底部安全区需加 env(safe-area-inset-bottom)
iPhone X 及之后机型有圆角和 Home Indicator,底部条若紧贴屏幕边缘会被遮挡。不能靠 JS 测高度,要用 CSS 原生方案。
正确写法:
.bottom-bar {
padding-bottom: env(safe-area-inset-bottom);
height: calc(60px + env(safe-area-inset-bottom));
}
注意:env() 必须和 padding-bottom 或 height 配合使用,单独写无效;Safari 支持良好,Chrome for iOS 也已支持,但旧版 Android WebView 不识别 —— 可用 @supports (padding-bottom: env(safe-area-inset-bottom)) 包裹降级。
fixed 的渲染差异。尤其当页面内容高度不足一屏时,某些安卓浏览器会让 fixed 条随内容一起滚动,这时候得加 body { min-height: 100vh; } 补救。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










