我正在关注关于使用 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;
但为什么?这是什么意思?
肿瘤坏死因子
安德烈亚