• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CSS記述。)

CSSでdiv要素を中央に配置する方法

このQ&Aのポイント
  • CSSを使用してdiv要素を中央に配置する方法について学びます。
  • margin: 0 auto; という記述では中央に配置できない場合、margin-left: 100px; 等を試してみましょう。
  • 例えば、.ngg-galleryoverviewクラスの幅を指定し、margin: 0 auto; を追加することで中央に配置することができます。

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

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

下書きのほうをアップしちゃった メモ: CSSスタイルシートを意図した通りに機能させるには、正しい文書解析木が必要です。つまり、正当なHTMLを用いるべきです。. ( http://jigsaw.w3.org/css-validator/#validate_by_input )  まず、HTMLをしっかり。   <body>   <div class="header">     <h1>タイトル</h1>   </div>   <div class="section">     <h2>見出し</h2>     <div class="section">       <h3>章見出し</h3>       <p>全角スペースでインデントさせているのでHTMLソースの全角スペースはタブに戻すこと</p>     </div>   </div>   <div class="footer">     <h2>文書情報</h2>   </div> </body> のようなHTMLがあって、それぞれのブロック(header,section,footer)をウィンドウの80%幅にして中央配置したい場合は、 div.header,div.section,div.footer /* とグループ化して */ { width:80%; margin-top:0; margin-right:auto; margin-bottom:0; margin-left:auto; /* わかりやすいように枠と色をつけておく */ border-style:solid; border-width:1px; border-color:gray; background-color:silver; } とします。  これらは簡略化できるので div.header,div.section,div.footer{ width:80%; margin:0 auto; border:solid 1px gray; background-color:silver; } と書けます。 通常は、(スマホ対象に)最小幅と、(幅広ディスプレイ用の)最大幅も指定して div.header,div.section,div.footer{ width:80%;min-width:640px; max-width:800px; margin:0 auto; border:solid 1px gray; background-color:silver; } /* これでは、二階層目のdiv.sectionにも適用されますので */ div.section div.section{ margin:0 0 0 2em; min-width:0; border:none; } とかしておきます。 [スタイルシートの書き方]  お分かりのように、どの要素に適用させるかはセレクタで記述します。このとき.[class名]という書き方はCSS1の名残で、CSS2.1では、[基点となるセレクタ].class名と言う風に書きます。.[class名]は*.[class名]と解釈されます。*は全称セレクタで詳細度は0。  div.headerとは、classのリストにheaderをもつdiv要素と言う意味で、タイプセレクタ(HTMLの要素のこと).(クラスセレクタ)クラス名ですし、 div.section div.section は、classリストのひとつにsetionを持つdiv要素の子孫のclassリストのひとつにsetionを持つdiv要素と言う意味です。 セレクタの書き方とカスケーディングの仕組みはプロパティより重要です。しっかり身につけること。プロパティはその後 ★セレクタ ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/selector.html ) ★値の割り当て、カスケード処理、継承 ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/cascade.html ) [HTMLの書き方]  上記で例に挙げたHTMLソースは、『DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するため ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )』にしたがって、class名を記述しています。じつはHTML4.01のこの説明、実例もなくわかりにくく認知されなくて、HTML5ではその反省から「文書をよりよく構造化するために、次の要素が新しく追加されました。 ( http://standards.mitsue.co.jp/resources/w3c/TR/h … )」・・  ここを読まれると、どのようなclass名が良いかわかるでしょう。 [再びスタイルシートの書き方]  スタイルシートは、それを元に「本文中の小項目については、字を一回り小さくする」なら div.section div.section{font-size:0.95em;} とか指定していきます。デザインのためにclass名をつけません。 .ngg-galleryoverview とか .ngg-galleryoverview .desc は論外です。

その他の回答 (1)

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

メモ: CSSスタイルシートを意図した通りに機能させるには、正しい文書解析木が必要です。つまり、正当なHTMLを用いるべきです。. ( http://jigsaw.w3.org/css-validator/#validate_by_input )  まず、HTMLをしっかり。  上記で例に挙げたHTMLソースは、『DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するため ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.4 )』にしたがって、class名を記述しています。じつはHTML4.01のこの説明、実例もなくわかりにくく認知されなくて、HTML5ではその反省から「文書をよりよく構造化するために、次の要素が新しく追加されました。 ( http://standards.mitsue.co.jp/resources/w3c/TR/html5-diff/#new-elements )」・・  ここを読まれると、どのようなclass名が良いかわかるでしょう。  スタイルシートは、それを元に「本文中の小項目については、字を一回り小さくする」なら div.section div.section{font-size:0.95em;} とか指定していきます。デザインのためにclass名をつけません。 .ngg-galleryoverview とか .ngg-galleryoverview .desc は論外です。

関連するQ&A