HTML 元素(尤其是 <ul>)自带默认外边距,这是导致 <header> 和 <nav> 之间出现意外空白的根本原因;通过重置 ul 的 margin 或全局重置盒模型,即可精准消除该间隙。
html 元素(尤其是 `
在实际开发中,许多开发者误以为仅设置 header { margin-bottom: 0; } 或 nav { margin-top: 0; } 就能消除两者之间的间隙,但往往无效——问题并不出在 header 或 nav 自身,而在于其内部嵌套的 <ul> 元素。
浏览器对 <ul> 元素施加了默认样式:margin-top: 1rem; margin-bottom: 1rem;(通常为 16px)。由于 <nav> 内部直接包含 <ul>,该 margin-top 会从 <ul> 顶部“溢出”并撑开 <nav> 与上方 <header> 的距离,形成视觉上的“间隙”。
正确解决方案是针对性重置 <ul> 的外边距:
nav ul { margin: 0; padding-left: 0; /* 已存在,保留以移除默认列表缩进 */}
此写法精准作用于导航菜单中的无序列表,不影响页面其他 <ul>(如内容区的项目符号列表),兼顾语义性与可维护性。
注意事项:
? 总结:消除 header-nav 间隙的关键,在于理解 CSS 默认样式(user agent stylesheet)的影响机制。优先采用语义化、作用域明确的选择器(如 nav ul)进行局部重置,既高效又可持续——这才是专业前端实践的应有之义。