• 締切済み

ヘッダー・フッター固定でコンテンツのみ可変

高さが固定されているヘッダーとフッターをウィンドウの上と下に固定したままで、その間のコンテンツ部分のみを縦方向に可変にする方法は考えられるでしょうか。つまり、 (ヘッダー+コンテンツ+フッター)の高さの合計=ウィンドウの高さ が常に成り立つ方法です。framesetでrowを指定すれば話は早いんですが、XHTMLで実現したいので使えません。 Javascriptを使ってウィンドウの高さを計算してからコンテンツ部分の高さを指定する方法もありますが、その場合はウィンドウのサイズを変えてしまうとヘッダーとフッターがウィンドウに連動せずに画面外や中途半端なところに残ってしまうので、それもだめかなと思いました。 とりあえずコンテンツ部分はどんなに高さが小さくなってもいいので、かなりウィンドウの高さが小さくても、常にヘッダーとフッターがきちんとウィンドウの上下に固定され、コンテンツ部分が可変になるような方法がありましたら教えてください。 ------------------------------- ヘッダー(固定) ------------------------------- コンテンツ(可変) ※この部分のみにスクロールバーが現れることができる。 ------------------------------- フッター(固定) -------------------------------

  • HTML
  • 回答数4
  • ありがとう数16

みんなの回答

  • abril
  • ベストアンサー率69% (388/560)
回答No.4

> 高さが固定されているヘッダーとフッターをウィンドウの上と下に固定したままで、その間のコンテンツ部分のみを縦方向に可変にする方法は考えられるでしょうか。 できますよ。方法は色々ありますが、今回は怠けさせて頂いて(すみません)サンプルのご紹介だけにとどめさせて頂きますので悪しからず… 「フッタ 固定 CSS」のキーワードでググってみて下さい。具体的サンプルが色々ヒットします。 質問者様のご希望に一番近いサンプル、というとこの辺りでしょうかね…? http://www.rr.iij4u.or.jp/~kazumix/d/css/sample/header_footer.html ただし、いずれのサンプルもDOCTYPE宣言のヴァージョンやXML宣言の有無が異なる場合は意図しない表示になってしまう可能性がありますので、サンプルを使用される場合はそこを変更しない様にされた方が無難です。もしご自身の作成したいものが違う書式の場合は、必ず(その条件下でもサンプルと同様の表示結果になるか、を)検証し直される事をお奨めします。

twinhourse
質問者

お礼

情報ありがとうございます。たぶん、これは後方互換性を意図的に利用している方法ですよね。それにしてもbodyにpaddingを指定できるとは知りませんでした。

noname#66720
noname#66720
回答No.3

すいません、意図されているものと違いますね。 #2は忘れてください。

noname#66720
noname#66720
回答No.2

<h1 id="HEADER">ヘッダー</h1> <div id="CONTENT">コンテンツ</div> <p id="FOOTER">フッター</p> #HEADER { width:800px; height:50px; position:absolute; top:0; } #CONTENT { width:800px; padding:50px 0; } #FOOTER { width:800px; height:50px; position:absolute; bottom:0; } こんな感じでやるとできると思います。 もし上のソースでフッターが一番下までいかない場合は下の指定を追加してみてください。 body { height:100%; } html>body { height:auto; min-height:100%; } 確認していないので、参考までに。

  • maman53
  • ベストアンサー率18% (30/161)
回答No.1

IE6(7は不明)以外ならposition: fixed;を使用(こちらは滑らか) どうしてもIE6でも使用したいのならposition: fixed;をIEでも擬似的にしようできるスクリプトが出ているよ

twinhourse
質問者

お礼

IE8.jsなどは以前使ったことがあるのですが、他のライブラリに影響を与えたことがあるので、ためらっていました。 でも、ありがとうございました。

関連するQ&A

  • ヘッダとフッタが固定でコンテンツのみスクロール可能

    いつもお世話になります。 ヘッダ部とフッタ部は固定で、コンテンツ部のみで表示エリアを超えた場合スクロールバーを 表示する、というHTMLを実現するにはどうすればよいでしょうか。 (ウィンドウサイズに応じてコンテンツ部は変動するが、ヘッダとフッタは常に固定) イメージとしては以下の構成になります。いろいろ調べてみたのですが、ヘッダとフッタは固定 できてもスクロールバーがウィンドウ全体に表示されてしまうものばかりでした。 -------------------------------- ヘッダ(固定) (スクロールバーなし) -------------------------------- コンテンツ (スクロールバーあり) -------------------------------- フッタ(固定) (スクロールバーなし) -------------------------------- フレームは使用せず、CSSのみで実現する方法を教えて頂けませんでしょうか。 IE7、IE8で動作させたいと思っています。 宜しくお願いします。

    • 締切済み
    • CSS
  • [CSS]ヘッダー固定+コンテンツの縦位置可変

    CSSでのヘッダー固定に関する質問です。 ヘッダーを固定表示しつつ、ヘッダーの縦幅が文字サイズの可変などで大小した時に それにあわせてその下部の固定じゃないコンテンツ部分の縦の位置が 調整されるようにCSSで組むことは可能でしょうか? ヘッダー固定関連を調べてみたのですが、 条件に合うものがうまく見つけられなかったので、 恐れ入りますが質問させていただきました。 添付画像のような処理を行いたいと思っています。 ●文字サイズ可変に対応できない例 #header{ position:fixed; (またはposition:absolute;) width:100%; height:100px;" } #content{ width:100%; margin:100px 0 0;(またはpadding) } <body> <div id="header" >******</div> <div id="content">*****</div> </body> これだと#header内の文字サイズが大きくなった場合、枠からはみ出してしまいます。 現在はこれを用いています。(IE6対応などは行っています) ●文字サイズ可変に対応出来るが、固定部分に対応出来ない? http://www.rr.iij4u.or.jp/~kazumix/d/css/sample/header_footer.html こちらのやり方? ●やりたいこと <body> <div id="header">   <div id="header1">テキスト テキスト テキスト</div>   <div id="header2">画像や動画など縦幅は固定</div>   <div id="header3">テキスト テキスト テキスト</div> </div> <div id="content">******</div> </body> この形で、 header1とheader3はテキストが入るのでfirefox等の ブラウザの文字サイズ変更にて縦幅が可変しますが、 header2は常に縦幅が固定(100pxなど)です。 この条件の#headerの高さに応じて、スクロールバーが一番上にある状態の時は #content部分が常にピタッと#headerの下にひっついた状態にしたいです。 (スクロールバーは#content部分ではなく、body全体に出る形) この条件で、CSSのみで、ヘッダー固定を実現することは可能でしょうか? htmlの書き方は見た目が実現可能であれば必ずしも●やりたいこと の部分のものと同じでなくてもかまいません。 js等必要でしょうか? ご存知の方、ご教授いただけますと幸いでございます。

    • ベストアンサー
    • CSS
  • ヘッダー・フッター固定HTMLに関して

    ヘッダー・フッター固定HTMLに関して ヘッダー・フッター固定で(間)中段にFlashコンテンツを横100%縦100%で表示するHTMLを作成しようと思っております。 そこで、下記のHTMLソース、及びCSSで指定しているのですが、上手くいきません。 ヘッダー・フッター固定はできますが、Flashを表示しようとすると思うようにいきません。 「body > #wrapper」を「height:auto;」にすると、Flash部分の高さが小さく、 「body > #wrapper」を「height:100%;」にすると、フッター部分が消えてしまします。 【HTML】 ~~~~~~~~ <div id="head">~ヘッダー~</div> <div id="flashcontents">~Flashデータ~</div> <div id="foot">~フッター~</div> ~~~~~~~~ 【CSS】 ~~~~~~~~ html,body {margin:0; padding:0; overflow:hidden;} #head{~サイズなどを指定~} #flashcontents{margin: 0; height: 100%; width: 100%;} body > #flashcontents {height:100%; position: absolute;} #contents { position: fixed; overflow:hidden; bottom:0; 他サイズなど指定…} ~~~~~~~~ 以上、分かりにくい説明かと思いますが、もしお分かりになれば教えて頂けますでしょうか? よろしくお願い致します。

    • 締切済み
    • CSS
  • html?/css?/Javascript? でのフッター特殊な固定方

    html?/css?/Javascript? でのフッター特殊な固定方法について。 こんばんは。 現在ホームページを作成中です。 そこでフッターをブラウザの下部に固定しようと思い google等で検索し見つける事が出来ました。 ソースは色々ありますが例として下記のURLで説明したく思います。 http://www.css-lecture.com/template/2009/0212/ 私の希望・やりたい事としては上記のサイトに追加内容で (1).ヘッダーをブラウザ上部に固定。 (2).ブラウザの上下を縮めた時、フッターとヘッダが重ならないよう、最小高さを指定。 (3).(2)を実装時、フッタとヘッダがある程度寄るとスクロールバーが出てくると思いますが   スクロールした時にスクロールするのは内容のみ。   (フッタがブラウザ下部に隠れたとしてもスクロール時に移動してはいけない) です。 ここ最近試行錯誤しcssを書いていますが (3)を実装時に不具合が多く困っています。 ヘッダをブラウザ上部に、フッタをブラウザ下部に固定して スクロールした時、内容と同時にフッタまで上にスクロールされたり フッタを完全に固定してしまうと、ヘッダとフッタの最小間隔が指定できなかったり。 【簡易説明】 ヘッダは上部固定、フッタは下部に固定して ヘッダとフッタはブラウザの上下を縮めても重ならない様、最小値を指定し スクロールでスクロールするのは内容・記事のみ。 こんな事が可能なのかどうなのかも私の乏しい知識では判りませんので どなたか詳しい方いらっしゃいましたらご教授お願い致します。 内容・記事としてのスクロールバーと ヘッダ、フッタの最小値以上縮めた時のスクロールバーが入り組んでいる形になるので 不可能なんでしょうか・・・・。 また、もし参考サイト等がありましたら URLの誘導のみでも結構です。 何卒、宜しくお願い致します。(涙 また、乱文で大変失礼致しました。

    • ベストアンサー
    • HTML
  • フッター固定で余白ができます

    footerFixed.js http://blog.webcreativepark.net/2007/11/16-012253.html  を使ってhtmlのフッターを下部に固定させてみたところ、コンテンツが少ない量でページの最後にフッターが表示されるようになったのですが、コンテンツがあるコンテナが下部にのびず、背景が見えてしまう状態で尚かつ、コンテンツの最後から妙に大きな空白が開きます。 ブラウザで確認するとウインドウをリサイズすると戻るのですが、原因や対処がまったくわかりません。 どなたかコンテンツをフッターにつけた状態でフッターを下部に表示し、コンテンツが多い場合にはスクロールでフッターが出るようにするにはどのような方法で対応できるでしょうか。どなたかご意見いただければと思います。

    • ベストアンサー
    • HTML
  • フッタを常に下部へ固定しメインコンテンツ部をスクロールさせる方法

    現在 http://www.stylish-style.com/csstec/ultimate/fix-foot.html で紹介されている方法を使いフッタを常に最下部へ表示させています。#containerでページを囲み、#mainでフッタのパンディングを確保、 #mainのheightは100%-フッタ用パンディングの30pxとなっています。 #main内にヘッダ、ナビゲーションを上部から順に配置し ナビゲーション以降を#main2としコンテンツ部として表示させようと考えています。 ただ、この方法ではフッタが固定されるもののコンテンツはどんどん下へと伸びてしまいます。 私の考えている表示としては、 (1)コンテンツ部は常にフッタまでボックスを広げる。 (2)コンテンツがoverflowした場合はスクロールする。 この2点をクリアさせたいです。 #main2のheightをピクセルで固定させればできそうですが 解像度の変化に対応できないと思うので… どなたか良い方法を知っている方がいれば教えていただければ幸いです。 htmlとcssは下記URLです。 http://beatprovider.info/test/index.html http://beatprovider.info/test/style_d.css よろしくお願いします。

    • 締切済み
    • CSS
  • ヘッダー部の固定の方法

    こちらの簡単なサンプルを参考にサイトを作成しています。 http://scuderia-web.com/tips/xhtml_css/sample/fixed_header_and_footer.html 私が作るとメイン部がヘッダーもフッターも突き抜けて スクロールしてしまいました。 原因を調査したらフッター部は後から上書きすることで 上側に配置される状態になり、固定していると分かりました。 しかし、同じ考えをヘッダー部に当て嵌めてみても固定しません。 その内に分かるかなと思って数ヶ月・・・未だにギブアップです。 ヘッダー部はどういう理由で固定(上側に来る)されるのでしょう? なお、ヘッダー部にz-index:5 とかを割り当てれば固定してくれます。 しかし、この解決法はちょっと強引な気がしています。

    • ベストアンサー
    • CSS
  • ヘッダー・左メニュー・コンテンツ・フッターの総称

    はじめまして。 ヘッダー・左メニュー・コンテンツ・フッターの総称を教えて下さい。 「ホームページを構成する要素」とか「レイアウトを決める際の主要部分」とかいう説明調の言葉は思いつきますが、総称する単語がわかりません。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • XHTMLでHPのコンテンツ以外を固定する方法

    今趣味でホームページを作っているのですが、XHTMLでボックスを2段組にデザインして作っています。 それでヘッダー、サイドバー、フッターを固定してコンテンツだけに別のページを表示させたいのですが、可能ですか? 可能でしたらどういう風にやればいいのでしょうか? まだXHTMLを勉強して半月くらいの素人なのでお答えいただけると嬉しいです。 ちなみにタグなどの知識はちょっとありますが、Java scriptはよくわからないので使ってません><

  • エクセルのヘッダ・フッタの印刷倍率を固定したい

    EXCEL2003で、A3用紙にヘッダ・フッタに画像をいれて印刷します。 約1000ページの大量のファイルの体裁を、ヘッダ・フッタ付きに整えるためなのですが、印刷の倍率が異なるファイルだと、ヘッダ・フッタが印刷倍率に引きずられて小さくなってしまいます。(A3の用紙いっぱいに印刷できません) 画像で入れたヘッダ・フッタの印刷倍率を固定する方法をご存知でしたら、お教えいただけませんでしょうか? 本来、レイアウトソフトを使うべきなのだと思いますが、会社の機械環境でEXCELを使わざるをえず、ヘッダ・フッタをあらかじめ別の用紙に印刷するしかないかも知れないと、途方にくれております。

専門家に質問してみよう