2008-03-05

CSSでヘッダーの固定方法(上部擬似フレーム)について

CSSでのヘッダー固定にはHTMLのバージョンに注意

「HTML 4.01 Transitional」で「loose.dtd」は指定しないで下さい。
「loose.dtdを指定すると疑似フレームにはならずレイアウトが崩れます。
必ず<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">で宣言してください。

 html {
    width:100%; /* 表示をウィンドウ幅一杯にする */
    margin:0; /* 同じ理由 */
    overflow:auto; /* スクロールバーを隠す */
 }

 body {
    width:100%;  /* 幅一杯にする */
    margin:0;
    height:100%;
    overflow:auto;
 }

 div.header {
    /* 上部固定配置したい要素 */
    /* 前記事説明の方法で絶対位置指定配置する */
 }

このように記述することで、一応IEで擬似フレームが使えます。
しかし、この方法だと、Mozillaでスクロールバーが全く表示されません。
これは、html{oveflow:auto;} が原因で起きているようです。
他は問題なさそうなので、この部分だけをIEのみに適応すればよいわけです。

コメントアウトを使ってIEのみにスタイルを適用する
 <!--[if IE 6]>
 このコメントは、IE6の場合にコメントとして扱われない。
 <![endif]-->

上のコメントを用いて、IE用の外部スタイルシートへのlink要素を作るなりスタイルを直接記述するなりすればOK。

Bookmark

AddThis Social Bookmark Button