移动端侧边栏被遮挡的根源是flex-direction: row在小屏下空间不足,解决方案是媒体查询中改用flex-direction: column实现垂直堆叠,并移除overflow:hidden、设置width:100%及语义化HTML结构。
移动端侧边栏被遮挡,通常是因为默认的横向布局(flex-direction: row)在小屏幕上空间不足,导致侧边栏被挤压或溢出隐藏。用 flex-direction: column 是一种简洁有效的响应式解法——让主内容区和侧边栏在手机上垂直堆叠,而非并排。
核心思路是在小屏幕下把容器从水平排列改为垂直排列,确保侧边栏自然换行到下方(或上方),不再被截断。
display: flex
flex-direction: row
@media (max-width: 768px) 中改为 flex-direction: column
order: 2 或 order: 1 控制上下顺序(比如希望侧边栏在内容下方)很多布局会为父容器设 overflow: hidden 防止横向滚动,但这在移动端反而会把侧边栏“藏起来”。检查并移除不必要的 overflow 设置,或改用 overflow-x: hidden 仅限制横向溢出。
overflow-y: visible 确保纵向内容不被裁剪
height: 100vh,注意它可能限制容器高度,导致侧边栏撑不出视口overflow 或 clip-path
仅改 flex-direction 不够,还需防止侧边栏在 column 模式下仍试图占宽(如设了 width: 250px)。应让它在移动端自动撑满宽度:
width: 100% 或 flex: 1 0 auto(在 column 下等效于占满)width: 100%,避免留白或错位min-width,改用 min-width: 0 防止 flex 项目不收缩HTML 结构清晰有助于 CSS 控制。推荐用 和 标签包裹,再通过 flex 布局控制顺序与流向,比纯 div 更易维护、更利于无障碍访问。
... ...
.layout 控制方向,对 aside 控制移动端宽度与顺序