電子書籍の厳選無料作品が豊富!

いつもお世話になっております。
フレームについて質問させてください。

<frame name="header" src="header.html" title="メニュー" scrolling="no">
<frame name="main" src="main.html" title="コンテンツ" scrolling="auto">

現在、上記のようにフレーム分けを行い、ヘッダー(メニュー)部分は固定にして、メイン(コンテンツ)部分のみスクロールするようにしているのですが、これをフレーム分けせず、1枚のhtmlで同じように行う事は出来るのでしょうか。

よろしくお願いします。

A 回答 (6件)

iframeをつかうとか?



そうでないならたとえばこんな感じ。
<head>
<style>
#header{
background-Color:red;
}
#main{
height:80%;
background-Color:yellow;
overflow-y:scroll;
}
</style>
</head>
<body>
<div id="header">
メニュー
</div>
<div id="main">
test<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
test<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
test<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
test<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
test</div>
</body>

この回答への補足

サンプルまで表示して頂き、ありがとうございます。
色々試してみたのですが、解決できない事がありますので、
質問させてください。

提示頂いたサンプルを下記のように少し変更してみたのですが、
画面サイズを小さくしてみた所、一番下の
"見えなくなる"という行が下にスクロールしても見えなくなってしまいました。

フレームで分けた場合は大丈夫だったのですが、
こちらなんとかする方法はありますでしょうか。
よろしくお願いします。

<head>
<style>
#header{
background-Color:red;
}
#main{
height:80%;
background-Color:yellow;
overflow-y:scroll;
}
</style>
</head>

<body scroll="no">
<div id="header">
メニュー1<br>メニュー2<br>メニュー3<br>メニュー4<br>メニュー5<br>メニュー6<br>メニュー7<br>
</div>
<div id="main">
test<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
test<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
test<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
test<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
見えなくなる
</div>

</body>

補足日時:2009/05/13 21:35
    • good
    • 0

> 全く同じ風にする事


スタイルシートや
必要なら画像を使って
がりがり作り込むしかないわね。

この回答への補足

ご回答いただき有難うございます。

下にも記入させて頂きましたが、

下のhtmlを画面サイズを小さくしてみた所、一番下の
"見えなくなる"という行が下にスクロールしても見えなくなってしまいました。

フレームで分けた場合は大丈夫だったのですが、
こちらなんとかする方法はありますでしょうか。
よろしくお願いします。

<head>
<style>
#header{
background-Color:red;
}
#main{
height:80%;
background-Color:yellow;
overflow-y:scroll;
}
</style>
</head>

<body scroll="no">
<div id="header">
メニュー1<br>メニュー2<br>メニュー3<br>メニュー4<br>メニュー5<br>メニュー6<br>メニュー7<br>
</div>
<div id="main">
test<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
test<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
test<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
test<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
見えなくなる
</div>

</body>

補足日時:2009/05/14 13:24
    • good
    • 0

#4 です。


ごめんなさい、
>div#menu {......top : 15em ; .....}
は、div#menu {......top : 7em ; .....}です。数字を間違えました。
    • good
    • 0

こんばんは。


所謂、スクロールしてもメニューの部分だけ固定させたいと言うことですね。
それならば、固定したい メニュー に position 要素を使い、値を fixed にします。

CSS の一例
簡単に、メニューを左上にして固定させてみましょう。
位置は 左に 2em トップ 7em メニュー枠の色は teal メニュー幅は 10 em 他
body {margin : 1em 5em 2em 14em ;}
div#menu {position : absolute ; left : 2em ; top : 15em ;
width : 10em ; border : dotted 2px teal ; float : left ;}
body > div#menu {position : fixed ; }

position : fixed ; は Windows 版 IE 6 まで対応していません。
Windows 版 IE 7 ~ 及び Mac 版 IE 5.x , Firefox や Opera ,
Safari , SeaMonky , Shiira など私が確認したブラウザでは対応しています。

上記のことを踏まえて Windows IE 6 まではスクロールしてしまうメニューにして、
position : fixed ; に対応しているブラウザにはメニューを固定しよう、
と言うことで、
div#menu {position : absolute ; .......} にして、
body > div#menu {position : fixed ; }
を使いました。
これは、 Windows IE 6 までは子供セレクターに対応していないことを利用しています。
(子供セレクターについては、ご存じですよね)

では html の一例
リストの <ul> を使って、メニューを作ります。
文書型宣言や <body> <html> 等は省略

<h1>メニューを固定するページを作る</h1>
<div id="menu">
<ul>
<li><a href="menu01.html" title="メニュー1">メニュー1</a></li>
<li><a href="menu02.html" title="メニュー2">メニュー2</a></li>
<li><a href="menu03.html" title="メニュー3">メニュー3</a></li>
........
</ul>
</div>
<p>このテキストは、メニューの右側に表示されます。
ここに、好きなコンテンツを書いてみましょう。</p>

もしこの要素をお使いになるのならば、Windows 版 IE 6 までは
対応していない、と言うことを念頭に置いてください。
    • good
    • 0
    • good
    • 0

<div id="header">


header.htmlの内容
</div>
<div id="main">
main.htmlの内容
</div>

としてheaderとmainにそれぞれ
overflow:none、overflow:scroll
をスタイルシートとして設定するといいわ。
もちろん、widthとheightも忘れずにね。

この回答への補足

ありがとうございます。
微妙なのですが、どうしても若干違う風になってしまうようなのです。
全く同じ風にする事は難しいのでしょうか。

補足日時:2009/05/13 17:35
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!