
いつもお世話になります。
ヘッダ部とフッタ部は固定で、コンテンツ部のみで表示エリアを超えた場合スクロールバーを
表示する、というHTMLを実現するにはどうすればよいでしょうか。
(ウィンドウサイズに応じてコンテンツ部は変動するが、ヘッダとフッタは常に固定)
イメージとしては以下の構成になります。いろいろ調べてみたのですが、ヘッダとフッタは固定
できてもスクロールバーがウィンドウ全体に表示されてしまうものばかりでした。
--------------------------------
ヘッダ(固定)
(スクロールバーなし)
--------------------------------
コンテンツ
(スクロールバーあり)
--------------------------------
フッタ(固定)
(スクロールバーなし)
--------------------------------
フレームは使用せず、CSSのみで実現する方法を教えて頂けませんでしょうか。
IE7、IE8で動作させたいと思っています。
宜しくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
box-sizing(CSS3)を使えばCSSだけで出来ないことも無いです。
#私が思いつく限りはbox-sizingしかないのですが、他にも方法があるんでしょうかね
なのでIE8であればOKですが、IE7ではJavaScriptを使う以外方法はないかと思います
#IE6なら逆にバグを利用すればできるかもしれません。
#IE7でもbox-sizing-polyfillがありますが、htcの内部はJavaScriptですし。。。
一応サンプルを載せておきます(IE8はOK、IE7はNG)。
※スペースは全角
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<title>Test</title>
<style>
* { margin: 0; padding: 0; }
html, body { height: 100%; }
body {
padding: 100px 0 100px;
box-sizing: border-box;
}
#header {
position: absolute;
top: 0;
height: 100px;
width: 100%;
background-color: #EEE;
}
#footer {
position: absolute;
bottom: 0;
height: 100px;
width: 100%;
background-color: #EEE;
}
#content {
height: 100%;
background-color: #AAA;
overflow: auto;
}
#content div {
height: 1000px;
}
</style>
</head>
<body>
<div id="header">へっだ</div>
<div id="content"><div>なかみ</div></div>
<div id="footer">ふった</div>
</body>
</html>
No.1
- 回答日時:
・header,footerをabsoluteで上下に固定する。
・header,footerをfixedで固定する。
前者のほうが望ましい。
ですが、スクロールバーをsection部分にのみ表示させることはできないです。
なぜなら、heightにautoの値が指定されたとき、その算出値は内容の高さでなければならないからです。
これは、widthともっとも異なる部分です。
理由は、お分かりだと思いますが、内容を表示するに当たって、巾によって表示領域は下に長くならないとまずいからです。
詳しくはCSS2.1の仕様書の「10.6.2 Inline replaced elements, block-level replaced elements in normal flow, 'inline-block' replaced elements in normal flow and floating replaced elements ( http://www.w3.org/TR/2004/CR-CSS21-20040225/visu … )」をお読みください。CSS2から変更されています。ちなみにCSS2( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2 … )は訂正されました。
きちんと、具体的な値(pxなど)で指定しなければなりません。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
さすれば、sectionにスクロールバーを表示させることが出来ます。
javascriptでウィンドウ高さを求め、その値を元にスタイルシートを書き換えれば出来なくはないですが、色々問題があってお勧めしません。
返答ありがとうございます。
> javascriptでウィンドウ高さを求め、その値を元にスタイルシートを書き換えれば出来なくはないです
> が、色々問題があってお勧めしません。
おっしゃるとおり、ピクセル固定であればコンテンツ部のみにスクロールを表示させることはできますよね。CSSのみでできないとなれば、JavaScriptを使用して、ウィンドウサイズのイベントを拾って、動的にサイズを変更していくしかないか、と思っていたのですが、問題というのは何でしょうか。
何か問題があるという認識がありませんでした。教えて頂けないでしょうか。
宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- gooブログ 記事の下にスクロールバーが表示される 2 2022/08/19 20:42
- PHP PHPを使って、別サイトの一部を取得して表示したいのです。。 1 2023/01/18 21:45
- Photoshop(フォトショップ) 【Photoshop】画像拡大時に急激に画面外まで拡大してしまうのを制御したい 1 2023/08/25 03:04
- その他(プログラミング・Web制作) マウスオーバー→ホイール回転でスクロールできない 2 2022/10/31 10:06
- その他(ソフトウェア) 画像の拡大率を固定したまま次の画像を表示出来るビューアを探しています 2 2022/05/13 17:19
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/08 09:05
- システム ホームページの仕組みについて 3 2022/08/16 14:33
- Excel(エクセル) Excelシフト表 固定シフトの自動変換化 1 2022/04/14 16:10
- その他(パソコン・スマホ・電化製品) ワードでテキストボックス内の文字を連動させない方法 2 2023/02/09 16:56
- Chrome(クローム) Chromeが強制終了 1 2023/01/29 09:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SeesaaブログにBlogPeople (...
-
FC2カテゴリ親文字だけ大きく、...
-
困っています!!
-
<EMBED>は使わないほうがよいの...
-
HP作成/広告表示について
-
CSSについてです。
-
JQuery UIを使用したドラッグ&...
-
背景画像
-
スクリプト同士がケンカ?
-
firefoxでdivタグの体裁崩れ
-
youtubeの動画をポップアップで...
-
HTML・CSSの記述について
-
背景画像がつられてのびていく...
-
IEだけfloatがずれてしまう
-
マウスオーバーのメニューについて
-
HPデザインについて
-
CSS:floatを使っての段組で困...
-
スマートフォンで適切に見られ...
-
プルダウンメニューが設置でき...
-
CSSで背景画像が表示されない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スタイルシートで画面を上下に...
-
【CSS】floatで左右に並べた...
-
チェックボックスの背景色って...
-
CSS <div>の入れ子が反映さ...
-
HTMLですCSSです 画像のように...
-
CSSで背景を下までのばすには?
-
CSS のみのタブ切り替えについて
-
離れた場所にマウスオーバーで...
-
スクロール可能なチェックボックス
-
htmlのstyleのposition:relativ...
-
文字をクリックしたら別の文字...
-
スタイルシート(CSS)で、高さ...
-
行間
-
Ctrl+F(検索)の窓を出したいの...
-
CSSでフローとした際の親要素の...
-
CSSで(3)段組のページを作り...
-
html スクロール要素を下から表...
-
IE6のレイアウト崩れ
-
CSSでdivのheightを動的に
-
フッター上部に謎の隙間
おすすめ情報