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 は絶対に右側に配置されます (右: 0;のため) 。そのコンテナと thisdiv は 166px 下に押し出されます。
この推論は正しいですか?
私が理解できないのは、親 div (#header) で位置を相対的に設定する必要があるのはなぜですか?
一般的に、 position: absolute;を使用して要素を配置する必要がある場合は、そうなると思います。親がposition: relative;でなければならないことを設定する必要があります。
しかし、なぜ?その意味?
TNX
アンドレア