ページのサイズ構成についての質問

このQ&Aのポイント
  • ページのサイズ構成についての質問です。各ブロックの幅・高さの設定方法について教えて頂きたいです。
  • 考え1: サイズの絶対数で指定してページを作成するのがいいのでしょうか?
  • 考え2: サイズを%表示で指定して、ブラウザのサイズに合わせて自動リサイズされるようにするのがいいのでしょうか?
回答を見る
  • ベストアンサー

ページのサイズ構成につきまして

1ページのサイズ構成につきまして ===================    TOP       | =================== メニュー |       |       |       |       |   本文 |       |       | =================== div:フッター       | =================== というページ構成を考えています。 4つのブロック構成にわけるのですが、 質問:各ブロックの幅・高さの設定方法について教えて頂きたいのです。   考え1.サイズの絶対数で指定してページを作成するのがいいのでしょうか?  「Bブロック:width: 500px; 本文ブロック:width:300」 考え2.サイズを%?表示で指定して、ブラウザのサイズに合わせて自動リサイズされるようにする?  ブラウザのサイズに合わせて自動で、サイズ幅が変わるように作ったほうがいいのでしょうか?  ⇒といいますか、全体サイズの何%といった指定が出来るのでしょうか? 現在では、どちらの考えで作成するほうがいいのでしょうか? よろしくお願いします。

  • CSS
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • DrFell
  • ベストアンサー率55% (305/551)
回答No.3

「固定 可変 メリット デメリット」あたりで検索してみてください。足して2で割ったような手法も出てきます。 現在どちらの考えがいいというより、ターゲット層により使い分けたり、制作者の判断・このみで決定します。1pxのずれも許されない場合は固定が多いですが、読者に柔軟に対応したければ、合わせ技や可変(リキッド)となります。 長短をしり、ご自分にできる範囲でご自分で決めてください。 >全体サイズの何%といった指定が出来るのでしょうか? できます。可変・リキッドレイアウトなどと呼ばれています。 メニュー30%本文70%などと指定できます。

ShiftTail
質問者

お礼

リキッドレイアウト試してみました。 確かに、%指定で行うことが出来ました。 ただ、色々不便がわかりましたので、px指定でやってみようと思います。 情報ありがとうございました。

その他の回答 (2)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

frameは1999年勧告のHTML4.01以来、非推奨で 『HTML文書を作る場合には、この仕様における、他のDTDセットではなく strict DTD に適合する文書を作るよう推奨する。 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/conform.html#h-4.1 )』 とされてきたことと、余りに問題が多いため、さすがにここ四、五年は見かけなくなりました。以後のXHTML1.1/HTML5では、廃止されました。 とりあえず説明のため、HTML5の要素(前後をその名前のタグで囲む)で説明します。 文書は多くの場合 <header></header> <section></section> <footer></footer> などで構成されています。 【引用】____________ここから ・section 要素は、文書やアプリケーションにおける一般的なセクションを表します。h1, h2, h3, h4, h5, h6 要素と共に使用することで、文書構造を表すことができます。 ・article 要素はブログのエントリや新聞記事など、文書内で自己完結可能な箇所を示します。 ・・・【中略】・・・ ・header 要素は導入部やナビゲーションをグループ化します。 ・footer 要素はセクションのフッタを表します。フッタには作者に関する情報や、著作権情報などを含められます。 ・nav 要素はナビゲーションとなるセクションを表します。 ・・・【中略】・・・  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[HTML5 における HTML4 からの変更点( http://standards.mitsue.co.jp/resources/w3c/TR/html5-diff/#new-elements )]より これらは、HTML4では、divのclass名(やid名)で指定することになっていました。(idは一箇所しか存在しえませんが、文書は複数の記事(article)で構成されている場合もあるのでidではなくclass名を使うことが多い) 【引用】____________ここから DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[HTML4.01仕様書/7.5.3 ブロックレベル要素と行内要素( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.4 )]より お示しの場合、本文に当たる部分にあるメニューが本文記事の目次だある場合は <header></header> <section>  <div class="tableContent">  </div> </section> <footer></footer> サイト全体のナビゲーションでしたら <header></header> <section> </section> <footer>  <nav></nav> </footer> となるでしょう。 いずれもHTML4.01ないし、XHTML1.0などで作成するなら [HTML4.01/XHTML1.0/XHTML1.1]←※これを使って以下説明します。 <div class="header"></div> <div class="section">  <div class="tableContent">  </div> </div> <div class="footer"></div> となるでしょう。 ★HTMLはデザインは一切考えません。★  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ そのうえで、スタイルシートを使って、ページのプレゼンテーションを行います。ここからは、※ div.header,div.section,div,footer{ /* この3つ */  width:90%; /* ウィンドウ巾の90%; */  min-width: 640px /* 最小は640pxi-padなど */  max-width: 900px;/* 最大940px 幅広ディスプレイ */  margin:0 auto; /* 上下の隙間は0,左右は自動で中央に配置 */ } div.section{position:relative;}/*位置の基準とする*/ div.section div.tableContent{  position:absolute;/* div.section内で位置を指定 */  left:0;top:0;  width:20%; } とか指定していきます。 まとめると 1) HTMLは、文書構造にしたがって作成します。 2) それをスタイルシートでデザインする。 3) 可能な限り、様々な端末に合わせられるようデザインする。  と言う手順になります。HTMLさえ、きちんと出来ていれば、好きなようにデザインの変更が出来ます。ナビゲーションをページトップに置いたり、ページの左に置いたり、目次を横一列に並べたりをHTMLを変更せずにです。  もちろん、巾を固定するのも、ウィンドウに合わせて伸縮させるのも、ユーザーに好きなデザインを選ばせることもね。

ShiftTail
質問者

お礼

1) HTMLは、文書構造にしたがって作成します。 2) それをスタイルシートでデザインする。 3) 可能な限り、様々な端末に合わせられるようデザインする。 やはり、3番が重要ですね。 ただそれが一番難しいと思いますが・・・。 ちょっとがんばってみます。 情報ありがとうございます。

  • PXU10652
  • ベストアンサー率38% (777/1993)
回答No.1

「現在では、どちらの考えで作成するほうがいいのでしょうか?」  相手がどんな大きさで表示するかは分からないし、TOP、メニュー、フッターはある程度の高さや幅がないと意味がないので、絶対数でそれらを指定し、余りを本文に設定します。 例)タグとして認識されないように、わざと2バイト文字で書いています。 <FRAMESET ROWS=”80、*、80”>  <FRAME SRC=”TOP” NAME=”TOP” SCROLLING=”NO”>  <FRAMESET COLS=”100、*”>   <FRAME SRC=”メニュー” NAME=”MENU” SCROLLING=”NO”>   <FRAME SRC=”本文” NAME=”MAIN”>  </FRAMESET>  <FRAME SRC=”フッター” NAME=”FOOTER” SCROLLING=”NO”> </FRAMESET>  

ShiftTail
質問者

お礼

>相手がどんな大きさで表示するかは分からないし、TOP、メニュー、フッターはある程度の高さや幅がないと意味がないので、絶対数でそれらを指定し、余りを本文に設定します ある程度高さや幅がないと意味がないのですね。 確かにおっしゃられるとおりだと思います。 参考にさせて頂きます。

関連するQ&A

  • ページ全体の中央寄せ

    サイト制作にて、ページ全体を中央寄せにしたいのですが、 firefox 3.0~5(5はwindowsのみ)で、ページがほとんど左寄せになってしまい困っています。 (それ以外のブラウザでは中央寄せになります) DreamweaverCS5のBrowserLabで確認しています。 背景をブラウザの幅いっぱいに表示させる部分があるため、 ページ全体を囲んでいるdivには幅を指定せず、ヘッダーやコンテンツなどブロックごとのdivに幅を設定し、それぞれ左右のmarginをautoに設定していました。が、それだと中央寄せになりません。 他に下記のような方法も試しましたが、うまくいきませんでした。 ・ページ全体のdivにdisplay:inline-blockを設定する。 →全てのブラウザで中央寄せになりましたが、端まで表示させたい背景画像が途中で切れてしまう(inline-blockで自動的に幅が設定されたからでしょうか) ・ページ全体のdivにinline-blockを設定し、さらにwidth:100%を設定する。 →Mac版firefoxの5.0.1やSafari、IEでは背景画像が端まで表示されるが、文頭にあげたfirefox3~5(win)では左のほうへ寄ってしまいました。 htmlの確認などもしたものの、単純ミスなどかもしれないのですが。。 初心者のため、どんな基本的なことでも、ヒントをいただけたら嬉しいです。 よろしくお願いします。

    • 締切済み
    • CSS
  • ブラウザの表示サイズに合わせてフォントサイズを自動

    お世話になっています。 以前、http://okwave.jp/qa/q8296498.htmlで、質問をさせて頂いて、それなりのページは出来たのですが、新たな質問が..... ブラウザの表示サイズに合わせてフォントサイズを自動で変更する方法(http://blog.4galaxy.net/77.html)を参考にtoppage.phpを作ったのですが、1ページの中で、サイズの違う文字列をブラウザのサイズに合わせてフォントのサイズを自動で変更するには、どうしたら良いですか? 因みに以下が、私が参考のページを分からないなりに修正したものです。 引用ここからーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー <!DOCTYPE HTML> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> function AutoFsize(){ var wpx = $("div#content").width(); var wpx = $("div#content1").width(); var wpx = $("div#content2").width(); var fpar = (Math.floor((wpx)/(400/100)));// 横幅px ÷ (最少幅px/100) $("div#content").css("font-size",fpar+"%"); $("div#content1").css("font-size",fpar+"%"); $("div#content2").css("font-size",fpar+"%"); } setInterval(AutoFsize,1000);//ミリ秒ごとに横幅チェック //written by http://blog.4galaxy.net/ --> </script> <style type="text/css"> div#content { width:140%; min-width:400px; } div#content1 { width:40%; min-width:400px; } div#content2 { width:100%; min-width:400px; } </style> </head> <body> <div id="content">ここの文字サイズが変わります</div> <div id="content1">ここの文字サイズが変わります</div> <div id="content2">ここの文字サイズが変わります</div> </body> </html> 引用ここまでーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

    • ベストアンサー
    • CSS
  • CSSで画面を構成しています。

    CSSで画面を構成しています。 左ブロック、右ブロック共に角丸の四角にしたいので、**_head.gifというようなフタとソコになるような画像を使っています。 このままだと左右ブロックの高さが当然そろわないのですが、何か良い方法はないでしょうか? テーブルレイアウト以外であれば、多少イレギュラーな方法でもかまいません。 *css********** div#body{width:800px; margin:10px auto; text-align:center; padding:0; } div#header{padding:0; margin:0 0 10px 0; background-image:url(**.gif); width:800px; height:50px; text-align:left; } div#main{ width:800px; text-align:left; } div#submenu{padding:0; margin:0 10px 10px 0; width:200px; text-align:left; float:left; } div#contents{padding:0; margin:0 0 10px 210px; width:590px; text-align:left; } div#footer{padding:0; margin:0 0 5px 0; clear:both; width:800px; height:30px; text-align:left; } *html**** <div id="body"> <div id="header"> ヘッダー </div> <div id="main"> <div id="submenu"> <img src="img/common/sub_head.gif" width="200" height="10" />  <div>左ブロック</div> <img src="img/common/sub_foot.gif" width="200" height="10" /> </div> <div id="contents"> <img src="img/common/main_head.gif" width="590" height="10" />  <div>右ブロック</div> <img src="img/common/main_foot.gif" width="590" height="10" /> </div> </div> <div id="footer"> フッター </div> </div>

    • ベストアンサー
    • HTML
  • max-widthを指定した場合の縦サイズのリサイズ方法

    画像のサイズをCSSのmax-widthを指定した場合、縦のサイズを、縦横比率を変えずに自動でリサイズする方法を探しています。 CMS (Movable Type)でサイトを構築しており、ブログ記事の本文に「画像挿入」ボタンを利用して挿入するため、<img src="photo.jpg" width="600" height="400">とwidthとheightが指定された状態のため、max-widthで400pxと指定すると画像が縦長になってしまっています。 どのようにすれば縦横比率を変えず、さらにmax-widthのような形で縦のサイズを自動でリサイズする事ができますでしょうか?宜しくお願いします。

    • ベストアンサー
    • HTML
  • CSSレイアウトの回り込みについて

    初めまして、よろしくお願いいたします。 見よう見まねでCSSレイアウトのweb制作に挑戦している者です。以下の現象についてご指南いただければ大変助かります。 ■CSS #wrapper { width : 620px; } #left { width : 300px; float : left; } #right { width : 300px; float : right; } ■ソース <div id="wrapper"> <div id="left"> (左寄せブロック) </div> <div id="right"> (右寄せブロック) </div> </div> 上記のCSSとソースで「620px幅の外枠」の中に「300px幅の左寄せブロック」「300px幅の右寄せブロック」が中央に20pxの隙間を空けて正常に表示されるのですが、右寄せブロックの中に長いテキストを改行せずに書いたら右寄せブロックが右寄せにならず、左寄せブロックの下に落ちて表示されてしまいます。 この現象は、長いテキストが300px幅に指定されている右寄せブロックの幅を押し広げている?から起こるのでしょうか。 右寄せブロックの中に長いテキストを書く場合、いちいち300px幅を意識して自分で改行を入れなくても、300pxの右寄せブロック幅を押し広げることなく自動折り返しされれば良いのですが。(右寄せブロックの高さは指定していないので) また、文字のサイズはpxで固定できない事情があるので、ブラウザで可変できるパーセント指定にしているのですが、ブラウザの文字サイズ中では正常に右寄せされている右寄せブロックが、文字サイズ大に変更したとたんに左寄せブロックの下に落ちてしまいます。 右寄せブロックの中に長いテキストを改行なしで書いても右寄せブロックが左寄せブロックの下に落ちて表示されない様、どなたかご指南いただければ誠に幸いです。

  • ブラウザサイズによって変わるwebページのサイズ

    こんにちわ。 ホームページ初心者ですが、いろいろ調べながら作っています。 下記の画像を参考に、ブラウザのサイズによって中身のflashや常に画面下に表示されるフッター(flash)の大きさ(幅)を調節したいと考えております。 そこでflashを <div id="flash_1">で囲み、 CSSに #flash_1{ max-height:70%; min-height:50%; bottom: 0; padding-left: 0; } などと記述しているのですが、何故かこのFlashがセンターにも来ず、サイズも変わらないままで困っています。 基礎的な事もまだ理解できていないので、もう少し勉強してから動的なページを作ろうと考えているのですが、どうしても先に進めずに困っています。 特に知りたい事は、 Flashの大きさの変更について センタリングについて です。 どなたかご教授よろしくおねがいします。

  • ブラウザの表示幅で100%指定が切れる

    ちょっと現象を把握しきれていないのですが、100%指定をしている箇所が、ブラウザによって途中で切れる現象が確認できています。 具体的には、ヘッダにボーダーとして引いている線 <img src="xx.gif" width="100%" height="5"> と フッタのdiv指定の箇所 <footer></footer> width:100%; としている箇所です。 通常のPCブラウザ表示では問題ありませんが、Chromeで、開発者ツールを右ペインに指定しているのですが、ここを開くと幅が縮まって、ブラウザの表示幅がサイトの全体幅よりも小さくなります。 その状態で本文部分を右にスクロールすると、100%指定した箇所だけが、その開発者ツールが開いた位置から表示されなくなります。 表示されないというと語弊がありますが、ボーダーの指定などが効いているので、「そこが100%として認識されている」という状態だと思います。 右にスクロールした状態でリロードすれば戻るのでは?と思いましたが戻りません。 また、開発者ツールを閉じて、普通の状態で画面幅を広げたり狭めたりすると問題なく表示されます。 それと、iPadのSafariでも同様の表示になっていて、こちらはページを開いた状態ですでに右側が欠けている状態です。 縦、横、どちらの向きも同じく右側が欠けます。 サイト自体は1024px幅で組んでいますが、768pxの位置までで、そこから先が表示されなくなります。 なんとなく、metaで幅をきっちり指定してあげるべきなのかなぁと思っていますが、同様の現象に悩まされた方いらっしゃいましたらよろしくお願い致します。

    • 締切済み
    • CSS
  • ページの高さを取得し、それに合わせて横幅を決めたい

    閲覧ありがとうございます。 現在javascriptの練習をしているのですが、 ブラウザのページの高さを取得し、それに合わせて Webページの横幅を自動算出し、style.widthで割り当てたいのですが、 Firefoxでは構文エラーがでます。 何がいけないのでしょうか。 以下にソースを記述いたしますので、ご教示いただければと思います。 併せて、margin: 0 auto;で中央揃えにしたいのですが、 CSSでは一応記述しておりますが、可能でしょうか。 $(window).resize(function(){ var h = $(window).height(); var w = h * 1.5; var bodyWidth = document.getElementsByTagName('body').tyle.width = w + 'px'; var headerWidth = document.getElementById('hdr').tyle.width = w + 'px'; var contentWidth = document.getElementById('content-box').tyle.width = w + 'px'; var footerWidth = document.getElementsByTagName('footer').tyle.width = w + 'px'; }); 以下HTMLソースコード(必要部分のみ) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title></title> </head> <body> <div id="hdr"> <header> </header> </div> <div id="content-box"> </div> <div> <footer> </footer> </div> </body> </html> 以下CSS(必要部分のみ※現在は固定幅にしています。) * { margin: 0; padding: 0; font-style: normal; } body { width: 1024px; margin: 0 auto; position: relative; } div#hdr { position: absolute; top: 580px; left: 0; background: #ffffff; width: 1024px; height: 100px; z-index: 100; } div#content-box { position: relative; position: absolute; top: 20px; left: 0; width: 1024px; height: 560px; overflow: hidden; } div#ftr { position: absolute; width: 1024px; height: 20px; top: 0; left: 0; }

  • perlで3カラムにしたい (css)

    perlでcgiのアンケートのページを作っていますが、ページの最上部をヘッダー、ページの両端にメニューや広告、中央にコンテンツを配置する3カラム(三段組み)、最下部をフッターにしたいと考えています。 ページ幅 755pxでセンタリング、両端のメニュー、コンテンツともに幅固定で、以下のようなcssファイルを作りましたが、cgiのページを見ると、cssファイルの設定がうまく反映されません。 どうすれば良いのか、ぜひ御指導、アドバイス頂けると助かります。 m(_ _)m 当方初心者のため、もし以下のcssファイルの書き方に間違えがありましたら、ご指摘ください。 よろしくお願い致します。 ----------------------------- <HTML> <BODY> <div id="wrapper"> <div id="header"> ヘッダー部分 </div> <div id="main"> <div id="menu"> メニュー部分 </div> <div id="contents"> コンテンツ部分 </div> <div id="affiriate"> アフィリエイト部分 </div> </div> <div id="footer"> フッター部分 </div> * { margin: 0; padding: 0; } #wrapper { width: 755px; margin: 0 auto; /* 幅固定(755px)でセンタリングします。*/ } #header { width: 755px; height: 50px; } #main { width: 755px; /* 両端ブロックとコンテンツを囲んでいるセレクタです。*/ } #menu { float: left; width: 150px; /* floatに、width 指定は必須です。*/ } #contents { float: left; width: 505px; #affiliate { float: left; width: 150px; } #footer { clear: both; /* float をクリアしています。*/ width: 755px; height: 50px; } #menu ul { list-style: none; } </div> </BODY> </HTML>

    • ベストアンサー
    • CSS
  • div領域をウインドウサイズに合わせる

    divタグで生成された3つの領域を横に並べたいのですが、 左2つは幅をピクセル指定で固定し、3つめをウインドウサイズに合わせて残りの幅全てを使う、という指定はどうすればいいでしょうか? 高さもやはりウインドウサイズにあわせるようにしたいです。 また、左2つの領域は固定したまま、3つめの領域のみスクロールができるようしたいです。 現在下記で試していますが、うまくいきません。 お分かりになる方、知恵をお貸しくださいo(_ _*o) 【HTML側】 <div id="left">1</div> <div id="center">2</div> <div id="right">3</div> 【CSS側】 html,body{   height:100%;   width:100%;       } div#left{   width:150px;   height:100%;   float:left; } div#center{   width:160px;   height:100%;   float:left; } div#right{   width:100%;   height:100%;   float:left; }

    • ベストアンサー
    • HTML

専門家に質問してみよう