positionの例

実践的な例では、positionはもう少し理にかなっているかもしれない。以下が本物っぽいページレイアウトだ。

.container {
  position: relative;
}
nav {
  position: absolute;
  left: 0px;
  width: 200px;
}
section {
  /* position is static by default */
  margin-left: 200px;
}
footer {
  position: fixed;
  bottom: 0;
  left: 0;
  height: 70px;
  background-color: white;
  width: 100%;
}
body {
  margin-bottom: 120px;
}
<div class="container">
<section>

navが配置されることが分かっているので、sectionmargin-leftをこのように指定できる。そうでなければ、absoluteな要素とstaticな要素は重なってしまう。

</section>
<section>

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus imperdiet, nulla et dictum interdum, nisi lorem egestas odio, vitae scelerisque enim ligula venenatis dolor. Maecenas nisl est, ultrices nec congue eget, auctor vitae massa. Fusce luctus vestibulum augue ut aliquet. Mauris ante ligula, facilisis sed ornare eu, lobortis in odio. Praesent convallis urna a lacus interdum ut hendrerit risus congue. Nunc sagittis dictum nisi, sed ullamcorper ipsum dignissim ac. In at libero sed nunc venenatis imperdiet sed ornare turpis. Donec vitae dui eget tellus gravida venenatis. Integer fringilla congue eros non fermentum. Sed dapibus pulvinar nibh tempor porta. Cras ac leo purus. Mauris quis diam velit.

</section>
<section>

ブラウザをリサイズすると何が起こるか気づいたかい?いい感じに動作するよ!

</section>
<footer>

fixedなheaderやfooterを配置するには、そのための場所が無くてはならないればならない!私は、bodymargin-bottomを設定している。

</footer>

コンテナの高さがnavより高いから、この例は上手く動作する。もし違っていたら、navはコンテナの外にはみ出るだろう。次のページでは、また違った長所と短所のある、他のレイアウト技術について話そう。

  • Creative Commons License