我正在关注关于使用 HTML+CSS 创建 Web 模板表的教程,但我对模板中元素的定位有一些疑问。
这张图片代表了我的模板在最后的样子:

现在我必须放置水平主菜单(标题中的绿色菜单)
我正在关注的教程说我必须使用绝对定位来向右移动具有 id=nav 的 div,其中包含带有导航菜单的列表。
要做到这一点,教程说我必须做以下事情:
- 将其父 div 的位置设置为相对并设置此父 div 的确切高度
- 对 id=nav 的 div使用绝对定位
所以,在我的模板中,我必须在 HTML 代码中有这样的内容:
        <div id="header">    <!-- HEADER -->
            <div id="logo">     <!-- My Logo -->
                <h1><a href="#">My web site is cool</a></h1>
                <p id="slogan">
                    My web site is finally online
                </p>
            </div>
            <!-- Here go the horizontal main menu -->
            <div id="nav">
                <ul>
                    <li>
                        <a href="#">Home</a>
                    </li>
                    <li>
                        <a href="#">Portfolio</a>
                    </li>
                    <li>
                        <a href="#">Blog</a>
                    </li>
                    <li>
                        <a href="#">Contatti</a>
                    </li>
                    <li>
                        <a href="#">About</a>
                    </li>
                </ul>
            </div>
CSS代码是这样的:
#header {
    background: #092F85;
    position: relative;
    height: 193px;          /* I set the height of my header */
}   
#nav{
    background: #93D459;
    position: absolute;
    top: 166px;
    right: 0;
}
我认为#nav div 定位的含义很简单(如果我错了,请纠正我)并且是:具有 id=nav 的 div 绝对位于右侧(因为right: 0;)它的容器和thisdiv被向下推166px。
这个推理正确吗?
我无法理解的是:为什么在父 div(#header)中我必须将位置设置为相对?
我认为,一般来说,当我必须放置一个带有position: absolute;的元素时。我必须设置它的父级必须是position: relative;
但为什么?这是什么意思?
肿瘤坏死因子
安德烈亚