小尺寸及高屏设备导航按钮不显示问题求助(附CSS代码)
导航按钮显示问题排查与修复
核心问题定位
你提供的CSS中存在无效的flex属性值,这是小尺寸/高屏设备导航按钮不显示的关键原因:
align-items: right;不是flex布局的合法取值,浏览器会忽略该属性,导致元素对齐异常,甚至被挤出可视区域。
修复步骤
1. 修正CSS属性错误
将.nav__menu和.nav__toggle中的align-items: right;替换为合法的flex值,比如flex-end(右对齐)或center(居中):
@media screen and (max-width: 1023px) { .nav__menu { position: fixed; top: -100%; left: 0; background-color: var(--body-color); width: 100%; box-shadow: 0 1px 16px hsla(210, 55%, 24%, .1); padding-block: 3.5rem 2rem; display: flex; flex-direction: column; align-items: flex-end; /* 修正为合法的右对齐值 */ row-gap: 2.5rem; transition: top .4s; padding-right: 1rem; /* 可选:添加右侧内边距,避免按钮贴边 */ } .nav__toggle { display: flex; flex-direction: column; align-items: center; /* 汉堡按钮居中更易点击,也可设为flex-end */ font-size: 1.25rem; color: var(--title-color); cursor: pointer; position: relative; z-index: 100; /* 确保按钮不会被菜单或其他元素遮挡 */ } }
2. 额外排查点
如果修正后仍不显示,打开浏览器开发者工具(F12),切换到小尺寸设备调试模式,检查以下内容:
- 确认
.nav__toggle的display属性不是none,opacity为1,visibility为visible; - 查看元素盒模型,确认按钮的位置(top/right/bottom/left)处于可视区域内;
- 检查是否有其他媒体查询(比如
max-width:768px)覆盖了.nav__toggle的样式; - 确认父元素没有设置
overflow:hidden导致按钮被裁剪。
内容的提问来源于stack exchange,提问作者kevm
相关产品推荐
相关产品推荐

