You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何页面文本显示在导航栏后方?HTML/CSS问题求助

问题分析与解决方案

首先,你犯了一个新手很容易踩的HTML结构坑——把<nav>标签放在了<head>里面!<head>是用来存页面元数据(比如字符编码、标题、样式引用)的,所有可见的页面内容(导航栏、标题、文本这类)都必须放在<body>标签内部,这是HTML的核心规范,也是导致你布局混乱的首要原因。

另外,大概率你的style.css里给导航栏加了position: absolute或者position: fixed定位,这种定位会让导航栏脱离正常的文档流,后面的元素(比如你的<h1>)会自动填充它原来的位置,所以才会跑到导航栏后方的左上角。

下面给你具体的修正步骤:

1. 先修正HTML结构

把<nav>移到<body>内部,放在<h1>之前,同时还帮你修正了脚本引用的错误写法:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="language" content="swedish">
    <meta http-equiv="content-type" content="text/html">
    <title> Kontakt </title>
    <link rel="stylesheet" href="style.css">
    <!-- 修正脚本引用:script标签用src属性,不是rel=script -->
    <script src="script.js"></script>
    <link href="https://fonts.googleapis.com/css2?family=Mulish:wght@200&display=swap" rel="stylesheet">
</head>
<body>
    <nav>
        <ul>
            <li><a href="index.html">Hem</a></li>
            <li><a href="jag.html">Vem är jag?</a></li>
            <li><a href="projekt.html">Mina projekt</a></li>
            <li><a href="kontakt.html">Kontakt</a></li>
        </ul>
    </nav>
    <h1>hej</h1>
</body>
</html>

2. 调整CSS布局(两种常用方案)

方案一:如果要做固定在顶部的导航栏

固定定位的导航栏会一直停留在页面顶部,这时候给<body>加个padding-top,值等于导航栏的高度,就能避免内容被遮挡:

/* 先重置浏览器默认的内外边距,避免样式干扰 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

nav {
    position: fixed;
    top: 0;
    width: 100%;
    background-color: #fff; /* 加背景色,防止后面内容透过显示 */
    box-shadow: 0 2px 4px rgba(0,0,0,0.1); /* 可选:加阴影增强视觉效果 */
}

nav ul {
    list-style: none;
    display: flex; /* 让导航项横向排列 */
    padding: 1rem; /* 给导航栏加内边距,内容不挤边 */
}

nav ul li {
    margin-right: 2rem;
}

nav ul li a {
    text-decoration: none;
    color: #333;
    font-family: 'Mulish', sans-serif;
}

/* 给body加顶部内边距,值等于导航栏高度 */
body {
    padding-top: 4rem;
    font-family: 'Mulish', sans-serif;
}

方案二:让导航栏处于正常文档流

如果不需要导航栏固定,只需要它正常占据页面顶部空间,后续内容自然会排在下方,不用手动调margin:

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

nav {
    background-color: #fff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

nav ul {
    list-style: none;
    display: flex;
    padding: 1rem;
}

nav ul li {
    margin-right: 2rem;
}

nav ul li a {
    text-decoration: none;
    color: #333;
    font-family: 'Mulish', sans-serif;
}

body {
    font-family: 'Mulish', sans-serif;
    padding: 0 1rem; /* 可选:让内容不贴页面左右边缘 */
}

h1 {
    margin-top: 2rem; /* 可选:给标题加个上边距,和导航栏拉开距离 */
}

这样调整后,你的<h1>就会正常出现在导航栏下方,不用再靠手动加margin来调整位置啦。

内容的提问来源于stack exchange,提问作者Daniel Eriksson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 18:42:38