1.概要 |
このページでは上段のタイトル・プルダウンメニューが本体をスクロールしても固定しているのがお判りかと思います
つまり、CSS(スタイルシート)を使ってフレームと同じ機能を持たせた「疑似フレーム」で作成しています
一般に使用される「フレームページ」は下記のソース1のように
index_frame.html 、left.html 、right.html の3つのファイルで構成されています。
■ ソース1 index_frame.html
<HEAD>
<TITLE></TITLE>
</HEAD>
<FRAMESET cols="50%,50%">
<FRAME name="left" src="left.html">
<FRAME name="right" src="right.html">
</FRAMESET>
</HTML> |
ところが疑似フレームでは index.html 一つで作成できます
それではこの疑似フレームの作成ついて具体的に解説します
|
2.サンプル |
まずサンプルをご覧下さい
■ 上段部分を固定
■ 左側部分を固定
何れも固定する部分は背景色を緑色で表示しています
右側にはスクロールバーが表示されます。このスクロールバーでページをスクロールしても緑色の部分は常に固定しています
|
3.スタイルシート(CSS)の設定 |
3.1 上段を固定 |
まず下記のようにスタイルシートを作成します
コピー・ペーストして style_tate.css のファイル名で同じフォルダーの中に作成します
上段の縦方向サイズは100ピクセルとします
■ ソース2 style_tate.css
/* 上段を固定 */
BODY {
margin: 0;
padding: 100px 0px 0px 0px ;
/* 上段の縦方向サイズを 100 ピクセルとします */
}
* html body{
overflow: auto ;
}
div#Header_area {
position: fixed !important;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100px;
/* BODY で設定した100ピクセルの値をセットします */
background-color : #aaff66 ; /* 背景色 */
}
* html div#Main_area{
height: 100%;
overflow: auto;
} |
padding : 100px 0px 0px 0px ;
この値は左から 上、右、下、左 です
|
3.2 左側を固定 |
下記は左側を固定したスタイルシートです。
コピー・ペーストして style_yoko.css のファイル名で同じフォルダーの中に作成します
とりあえずは150ピクセルとします
■ ソース3 style_yoko.css
/* 左側を固定 */
BODY {
margin: 0;
padding: 0px 0px 0px 150px ;
/* 左側の横サイズを 150 ピクセルとします */
}
* html body{
overflow: auto;
}
div#Left_area {
position: fixed !important;
position: absolute;
top: 0;
left: 0;
width: 150px;
/* BODY で設定した150ピクセルの値をセットします */
height: 100%;
background-color : #aaff66 ;
overflow: auto;
/* メニュー等の行が多い場合はスクロールバーを表示する */
}
* html div#Right_area{
height: 100%;
overflow: auto;
} |
padding : 0px 0px 0px 150px ;
この値は左から 上、右、下、左 です。ここでは左側を150pxに固定します
|
4.htmlの書き方 |
htmlの書き方は下記の通りです
スタイルシートは
<LINK rel="stylesheet" href="style_tate.css" type="text/css"
id="print_style">
のように設定します
id="print_style" は印刷設定の時に使います
■ ソース4 index.html
<LINK rel="stylesheet" href="style_tate.css" type="text/css"
id="print_style">
</HEAD>
<BODY>
<DIV id="Header_area" align="center">
上段に表示するプログラムを記述します
ただし高さは100ピクセル以内
</DIV>
<DIV id="Main_area" align="center">
下段に表示するプログラムを記述します
</DIV>
</BODY>
|
|
5.印刷のためのスタイルシート |
すでに経験されているようにフレームを使用したページのすべてを印刷できません
この疑似フレームでも同様です
解決方法は「疑似フレーム」を解除した印刷用のスタイルシートを準備します
これを style_print.css としてとりあえず同じフォルダーに保存します
下記は印刷用のスタイルシートです。疑似フレームの部分を書き換えています
■ ソース5 style_print.css
/* 印刷用のスタイルシートの一例 */
BODY {
margin: 0;
font-family : "MS Pゴシック", sans-serif;
background-color : #f0f0f0 ;
color : #003300 ;
font-size : 11pt ;
} |
実際には固定部分に「印刷」のリンクを設定し下記の部分を実行させます
印刷終了後は元のスタイルシートに書き換えます
function page_print(){
//-- スタイルシートの変更
document.getElementById('print_style').href = "style_print.css"
//-- 印刷
print()
//-- スタイルシートを元に戻す
document.getElementById('print_style').href = "style_tate.css"
;
} |
具体例はサンプルのソースで確認してください
|
5.まとめ |
閲覧者にとっては非常に親切なページとなるので、どうぞ活用してみて下さい
|
2011/05/24 |