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/ …
こちらのやり方?
●やりたいこと
<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等必要でしょうか?
ご存知の方、ご教授いただけますと幸いでございます。
No.1ベストアンサー
- 回答日時:
ものすごい手を抜くならコンテンツ側をiframe
height固定を外すだけじゃだめなのかな
どちらにしても、再描画後にjsなりで他のコンテンツの位置をずらすとかの処置が必要かも
ご回答いただきましてありがとうございます。
iframeやoverflowならなんとかなりますね。
妥協出来るところは妥協しなきゃいけないですね・・・
そうなるとやはりjsを使う必要がありそうですか。
その方向で一度考えてみようと思います。
諸所問題はありますし今は使おうと考えておりませんが、
かつて流行ったフレームはなんだかんだで便利ではありましたね。
No.2
- 回答日時:
デザインを考えてHTMLを作成したらダメ。
HTMLは文書構造をマークアップするものですから、それさえきちんと出来ていたら、サンプル画像の赤地部分を右上にfix、緑部分は中央とか、気が向いたとき自由に変更できるし、検索エンジンにも効果的。<body>
<div class="header">
<h1>見出し</h1>
<h2><span>見出し2</span></h2>
<div class="abstract">要約の記事</div>
</div>
<div class="section">
<h2>本文見出し</h2>
</div>
<div class="footer">
</div>
</body>
位でよいですね。
CSSはたとえば
div{margin:0;}
div.header *{margin:0;background-color:blue;}
div.header h2{height:100px;background-color:red;}
div.header div.abstruct{padding:1ex 1em;background-color:olive;}
div.section{min-height:400px;background-color:green;}
div.footer{background-color:magenta;}
程度でよい、absoluteもfixedもいらないはず。
ポイント1:HTMLを作成するときデザインは考えない。HTMLは文書構造をマークアップするメタ言語
ポイント2:CSSは、それを自由にプレゼンテーションするもの、配置しようとしてもうまく出来ないときはマークアップがきちんと出来ていない。
★横幅いっぱいのものをfixedしてしまうと、ページ内アンカーにリンクしたとき隠れてしまう。fixedすべきじゃないものをfixedしている。fixedは文章内の画像周辺に文字を回りこませるためのプロパティで、配置には特殊なとき以外使わない。
★デザインのためにマークアップ(たとえば、無駄なidをつける)すると、継承や詳細度がうまく使えなくなる。
ご回答いただきましてありがとうございます。
会員用マイページのデザインなので、検索エンジンは逆に来ないようにしておりますので、
なんとかこの形で実現出来ればと考えています。
(デザインは社内で確定済みですので変更が不可能です)
上記コーディングですと、ヘッダー固定(画面をスクロールしても常に上部に表示:PC版ツイッターの最上段の黒いバー部分みたいなもの)にならないかと思います。
CSSだけでも強引な方法を使えば出来ないこともないのですが、
何かスマートな方法があればと思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- HTML・CSS PCサイズで赤い画像2つと、青い画像2つがそれぞれ横に2つずつ並んでいるのですが、これをスマホサイズ 5 2022/04/11 12:01
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlのolやulなどlistにtitleや...
-
html の divとtable の役割
-
<div id="container">の使いか...
-
HTML属性での「""」 「''」違い
-
複数のボタンを等間隔に、かつ...
-
CSSで、contentsがfooterに重な...
-
画面を縮小するとカラムが落ち...
-
min-heightとheightの違いについて
-
h1のテキストサイズよりh2の方...
-
<!-- #BeginLibraryItemとは
-
何もいじってないのに、表示崩...
-
<div>テキスト</div>
-
CSSで画像を下に配置
-
html5でheaderの中にnav
-
ローカルとWeb上で見え方が違う...
-
iframeを使わずに上下50%ずつに...
-
セクションをdivで囲むと見出し...
-
RMS レフトナビ問題
-
要素間、要素内に隙間が空く
-
cssにてボタン位置を下揃えしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTML属性での「""」 「''」違い
-
htmlのolやulなどlistにtitleや...
-
div要素が重なってします
-
複数のボタンを等間隔に、かつ...
-
html の divとtable の役割
-
<div id="container">の使いか...
-
min-heightとheightの違いについて
-
ヘッダーとフッターだけ背景を...
-
1時間30分を簡単に表したいで...
-
要素間、要素内に隙間が空く
-
画面を縮小するとカラムが落ち...
-
スペースを使わず文字位置を揃...
-
h1のテキストサイズよりh2の方...
-
divの中に外部のHTMLを埋め込む
-
<!-- #BeginLibraryItemとは
-
hタグの右横に画像を表示
-
グリッドレイアウトで"auto-fit...
-
セクションをdivで囲むと見出し...
-
html5でheaderの中にnav
-
開閉式の隠し要素が一瞬表示さ...
おすすめ情報