导航栏图标与文本对齐异常:文本错位至图标下方求助
问题解决:导航文本与图标错位
你的问题出在图标元素的CSS设置上,.block-left-navigation-list i里的height:100%会让图标元素撑满父级<a>的高度,再加上行内元素默认的基线对齐规则,导致文本被挤到图标下方。
直接修改图标的CSS样式就能解决,下面两种方案任选其一:
方案1:移除高度限制+顶部对齐
.block-left-navigation-list i { /* 去掉height:100%,避免撑满容器高度 */ /* height: 100%; */ color: rgba(137, 137, 137, 0.6); margin-right: 20px; border-radius: 2px; background-color: #212121; padding: 0 9px; /* 强制让图标和文本顶部对齐 */ vertical-align: top; /* 可选:设置行高让图标和文本垂直居中匹配 */ line-height: 1.5; }
方案2:保留高度+flex垂直居中
如果需要图标撑满容器高度,用flex实现内部对齐:
.block-left-navigation-list i { height: 100%; color: rgba(137, 137, 137, 0.6); margin-right: 20px; border-radius: 2px; background-color: #212121; padding: 0 9px; /* 用flex让图标内部垂直居中 */ display: inline-flex; align-items: center; /* 确保和文本顶部对齐 */ vertical-align: top; }
修改后完整代码示例
CSS
.block-left-navigation-content { margin: 0; display: flex; width: 300px; height: 100vh; background-color: #0f0f0f; } .block-left-navigation-content ul { display: block; overflow-y: auto; max-height: calc(100vh - 5.9rem); margin-top: 10px; width: 100%; } .block-left-navigation-list li { font-weight: 600; font-size: 15px; padding: 10px 20px; border-top: 2px solid black; background-color: #151515; } .block-left-navigation-list a { display: inline-block; color: rgba(137, 137, 137, 0.9); } .block-left-navigation-list p { padding: 0; margin-left: 40px; display: inline-block; } .block-left-navigation-list i { color: rgba(137, 137, 137, 0.6); margin-right: 20px; border-radius: 2px; background-color: #212121; padding: 0 9px; vertical-align: top; line-height: 1.5; }
HTML
<div class="block-left-navigation-content"> <ul id="block-left-navigation-list" class="block-left-navigation-list"> <li> <a href=""> <i class="fa fa-link" aria-hidden="true"></i> Lorem ipsum dolor sit amet consectetur adipisicing, elit. </a> </li> </ul> </div>
内容的提问来源于stack exchange,提问作者hollybro
相关产品推荐
相关产品推荐

