
ブラウザいっぱいに表示されるページを作成しようとしているのですが、上手くいきません。
3カラムのサイトで、左側メニュー、真ん中コンテンツ、右側メニューという感じにしようと思っています。
ブラウザのサイズに合わせて真ん中のコンテンツだけが伸び縮みするようにし、左側メニュー、右側メニューは固定したいと思っています。
イメージとしてはGIGAZINEのような感じです。
http://gigazine.net/
―HTMLソース
<div id="contents">
contents
</div>
<div id="right">
right menu
</div>
<div id="left">
left menu
</div>
―CSS
#contents {
float: right;
}
#right {
float: right;
}
#left {
float: left;
}
しかし、真ん中コンテンツは最小サイズは指定しても、最大サイズを指定することができないので、長い文章を書くとその分だけ広がってしまい、結果的に他のメニューが回り込みできなくなって下に移動してしまいます。
position:absolute;を使えば、好きな場所に配置することができるので、これを実現できるのですが、個人的にposition:absolute;はあまり良くないと聞いたことがあります。実際はどうなのでしょうか?
また、GIGAZINEのソースを見ていると、position:absolute;ではなく、position:relative;で相対的に配置しております。
今まで横幅が固定されたサイトしか作ってこなかったので、少し難しいです。アドバイスをお願いします。
No.1ベストアンサー
- 回答日時:
カラムの長さを全て % 指定にするのが、手っ取り早く閲覧の支障も少ないと思います。
カラム落ちも(ほとんど)発生しませんし。#contents {
float: right;
width: 80%;
}
#right {
float: right;
width: 10%;
}
#left {
float: left;
width: 10%;
}
最大サイズは max-width で設定できますね。
アドバイスありがとうございます。
左右のサイドバーは固定したいと思っています。%で指定すれば確実ですが、デザインが崩れてしまうため、左右は変化させずに、真ん中だけを変化させたいと思っています。
No.2
- 回答日時:
左右の端に位置するコンテンツ部分は具体的な数値(ピクセルでも%でも構わない)で
指定して真ん中部分は幅を何も指定しないでおくと、全体から左右の幅を
引いた部分として自動的に調整された幅が確保されます。
position:abusolute; を使うよりも、floatでleft/rightと左右のコンテンツ位置を
制御する方がブラウザ/バージョンによる差も出にくいですよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 吹き出し 下記の吹き出しのスタイルシートについて 下記のスタイルシートは左側にアイコンがでる使用にな 1 2022/11/12 17:55
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- HTML・CSS HTML、cssのatomつぅーやつで 課題Ex1ってやつを表示させたいのですが、 私は課題Ex1が 2 2022/12/15 16:56
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSSのtransform: translate(-50...
-
ポインタがリンクの上に乗ると...
-
ブラウザいっぱいに表示される...
-
スクロールバーの色変更(長文)
-
ホームページの横幅
-
htmlとcssについて 初心者です...
-
bodyのセンタリングとwidthの指...
-
リストの「・」をセンタリング...
-
CSSによるスクロールバーの色の...
-
XHTML+CSSの段組についてです。
-
block要素を使ったものに対して...
-
インラインフレームの表示位置...
-
スタイルシートで枠を作る方法
-
こんなページはどうやって作れ...
-
CSSでウィンドウの真ん中にボッ...
-
Dreamweaverで画面サイズを一定...
-
CSSで全体を中央寄せ
-
CSSで、何故か全体のセンタリン...
-
htmltとcssのコードで
-
テキストボックス内の右寄せ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSSのtransform: translate(-50...
-
aタグに直接style=""で:hoverを...
-
text-alignの解除の方法
-
なぜ左に寄っているの?
-
端から端まで横線を引きたい
-
<h1>タグの後の行間を詰めたい。
-
FireFoxで見るとブラウザの幅に...
-
HTMLフォームのSELECTの幅を一...
-
INPUT TEXT内の文字位置を指定...
-
macとwindowsのレイアウト崩れ...
-
インラインフレームの表示位置...
-
chromeだけbody直下に空白が開く
-
htmlのタグ間の謎の空白
-
iPhone用のサイトの文字がずれ...
-
ホームページビルダー 空白の...
-
CSSの設定
-
CSSでh1とその下の文字との行間...
-
外部CSSがFireFoxで反映されません
-
表をページ中央に表示
-
topmarginをネスケで
おすすめ情報