• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DIVが二つ続いた後の下にテーブルを表示したいので)

HTMLでDIVの下にテーブルを表示する方法

このQ&Aのポイント
  • DIVが二つ続いた後の下にテーブルを表示する方法を教えてください。
  • HTMLのコードでDIVが二つ続いた後の下にテーブルを表示する方法を教えてください。
  • DIVの下にテーブルを表示する方法について教えてください。

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

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

もともとのソースを尊重します。以下を追加してください。 table{ clear:both; margin:0 auto; } 両divをfloatされていますが、floatは浮かせて右や左に寄せる働きをします。 浮いていますので、次に来た要素が入りそうなら、入ります。それが、質問の状況です。 そこで、一旦floatを解除するのが、clearです。clearは右だけ、左だけ、両方を値にもてます。今回は、rightもleftも使用しておられるので、両方のbothを使います。clear:both;を入れることで、一旦フラットな状態となります。 あとはtableを真ん中にするだけなので、ブロック要素への中央揃えの指定である。width+margin-left:auto;margin-right:auto;を入れたいところですが、widthが質問文からは不明なので、tableの初期値であるauto状態に任せます。エクセルでは空きスペースが全くないので、上下0左右autoのショートハンドである、margin:0 auto;を入れました。 floatの挙動は多くの人が誤解するところです。今回は使いませんでしたが、clearfixもフロートを使うには、必須で覚えないといけない考え方となります。勉強してみてください。

WPICVPUJEC
質問者

お礼

回答ありがとうございました。

その他の回答 (1)

  • Proof4
  • ベストアンサー率78% (151/192)
回答No.1

<html> <head>  <title>test</title>  <style type="text/css">  .wrap{   display: inline-block;  }  .boxeswrap{   width: 100%;   display: flex;   flex-direction: row;   justify-content: space-between;   }  div.migi,  div.hidari{   text-align: center;   width: 100px;   background-color: #ffff00;   border: 1px #BDBDBD solid;   padding: 10px 6px;  }  table{   margin: 0 112px;  }  </style> </head> <body>  <div class="wrap">   <div class="boxeswrap">    <div class="hidari">    hidari    </div>    <div class="migi">    migi    </div>   </div>   <table border=1 cellspacing=0>   <tr><td>1</td><td>2</td></tr>   </table>  </div> </body> </html> CSS3のflexboxを使用しています。(Chrome, Firefox, IE11, Edgeそれぞれ最新バージョンで検証済み) まず全体をwrapで囲み、幅が子要素に合うようにdisplay: inline-blockを指定。 左右のdivはboxeswrapで囲み、幅はwrapの幅いっぱいになるよう指定。boxeswrap内でdivが左右に配置されるようにflexboxを利用しています。 tableには左右にmarginをつけています。marginの値112pxは左右のdivそれぞれの正味の幅です。(width+padding) なお、このサイトの都合上、上記ソースコードのインデントを全角スペースで表現しています。適宜置換してください。

WPICVPUJEC
質問者

お礼

回答ありがとうございました。

関連するQ&A