侧边栏被内容遮挡、卡片覆盖导航栏及页面响应式失效问题求助
修复方案
1. 修复导航栏被卡片遮挡的层级问题
fixed定位的导航栏默认层级低于后续文档流中的相对定位元素,给导航栏设置足够高的层级即可:
.navbar{ width: 4.5rem; height: 100vh; position: fixed; z-index: 999; /* 新增此行 */ background-color: var(--bg-primary); transition: width 200ms ease; }
2. 统一盒模型避免样式变形
你只在:root设置了box-sizing,但所有子元素没有继承该配置,导致宽高计算混乱,卡片样式变形。补充全局盒模型重置规则:
:root{ font-size: 16px; font-family: 'Courier New', Courier, monospace; --text-primary: #b6b6b6; --text-secondary: #ececec; --bg-primary: #152238; --bg-secondary: #141418; --transition-speed: 600ms; box-sizing: border-box; /* 移除原来写在root里的margin和padding,放到全局重置里 */ } /* 新增全局重置规则 */ *, *::before, *::after { box-sizing: inherit; margin: 0; padding: 0; }
3. 修复卡片响应式失效问题
原卡片设置了固定宽度450px,小屏幕下无法自适应导致溢出变形,改为最大宽度限制即可:
.cardcont{ background: #FFFAFA; max-width: 450px; /* 把原width改为max-width */ width: 100%; /* 新增,小屏幕下自动占满可用宽度 */ margin: 20px; /* 可把原40px调小,避免小屏幕下左右边距过大导致溢出 */ border-radius: 7px; perspective: 1px; overflow: hidden; border: 8px solid transparent; }
4. 修复侧边栏展开时遮挡主内容的问题
原主内容main的左边距是固定值,侧边栏展开时不会同步右移,补充联动过渡规则即可:
main{ margin-left: 5rem; padding: 5rem 1rem 1rem; /* 把原padding-top调整为5rem,替代.todima和.container的相对定位偏移 */ display: flex; flex-direction: column; justify-content: space-between; transition: margin-left 200ms ease; /* 新增过渡效果,动画更丝滑 */ } /* 新增侧边栏展开时主内容同步右移的规则 */ .navbar:hover ~ main { margin-left: 16rem; }
同时可以删除.todima和.container里的position: relative和top: 5rem配置,避免多余的相对定位带来的层级冲突。
内容的提问来源于stack exchange,提问作者JAOWAD HASSAN NOOR
相关产品推荐
相关产品推荐

