floatの右側をdivで囲む方法とは?

このQ&Aのポイント
  • floatの右側をdivで囲む方法について説明します。
  • 現在、図や表を含む文章の構成において、floatの右側をdivで括る方法があります。
  • 具体的には、図の部分をdisplay:blockにし、説明文、表、説明文の3つを1つのdivで囲むことができます。
回答を見る
  • ベストアンサー

float の右側をdiv で囲む

現在次のような構成があります。   図  説明文 具体的なコードは <p><img>~</p>の一般的なものです。 説明文のところに表を入れる必要性が出て来ました。 ちょっと分かりにくいかと思いますが図は3枚でなく1枚のjpgです。 説明上、3つに分けて書いてあります。   図  説明文   図    表   図  説明文 図の部分をdisplay:blockにして、説明文、表、説明文の3つを 1つのdivで括った方がスマートかなと思っています。 ただ、空のdivタグを作ることになります。 それとも以下のコードの方がスマートなんでしょうか。 <p><img>~</p><table></table><p>~</p> ご見解を聞きたいと思いました。

  • HTML
  • 回答数1
  • ありがとう数2

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

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

 デザインを考えてマークアップするのは変です。tableを使ってデザインするのと意味的に同じHTMLの否定になります。  常に、文書構造を基準にデザインはスタイル指定がなくても意味が通じるように書きます。例にあげられたものでしたら <div class="section">  <h2>見出し</h2>  <div class="figure"><img></div>  <p>声明文・・・・</p>  <table summary="説明" border="1">   <tbody>   ・・・【中略】・・・  </table>  <p>説明の続き</p> </div> <div class="section">  <h2>見出し</h2>  <p>説明文</p> </div> とかになるでしょう。 【引用】____________ここから DIV要素・・は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[The global structure of an HTML document (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.4 )]より HTML5では、 <section>  <h2>見出し</h2>  <figure><img></figure>  <p>声明文・・・・</p>  <table>   <tbody>   ・・・【中略】・・・  </table>  <p>説明の続き</p> </section> <section>  <h2>見出し</h2>  <p>説明文</p> </section> とかになるでしょう。 そのうえで、スタイルシートで div.section div.figure{float:left;margin:1ex 1em;} div.section{clear:left;} だけでよいはずです。 HTML5用だと section figure{float:left;margin:1ex 1em;} section{clear:left;} 要は、何年かして見ても自身で本文に何が書いてあるか、挿絵に何が書かれているかわかることが大事です。当然検索エンジンもこれらの文書構造上意味のあるclass名は読んで理解してくれます。 HTMLがデザインに引っ張られたらダメです。

uzume_z
質問者

お礼

またまた先生にはお世話になります。 この発想はありませんでした。 逆にimg1つをdivで囲むと怒られるかなと思ってました。 だからdisplay:blockを考えていました。 clearするのもdiv.sectionで行うのですね。 これは前にも教えてもらった方法です。 今回は1個しかありませんが、これで行ってみたいと思います。

関連するQ&A

  • dlタグの中にdivは使える?

    dlタグの中で、dtタグとddタグを一つのdivで囲ってもよいのでしょうか?? 以下のようなかたちなのですが・・・。 使い方として間違っているのでしょうか?? ↓ ------------------------------------------------ <dl> <div class="aaa"> <dt>タイトル01</dt> <dd> <h4>説明文説明文説明文説明文説明文説明文</h4> <p><img ・・・・・></p> </dd> </div> <div class="aaa"> <dt>タイトル02</dt> <dd> <h4>説明文説明文説明文説明文説明文説明文</h4> <p><img ・・・・・></p> </dd> </div> <div class="aaa"> <dt>タイトル03</dt> <dd> <h4>説明文説明文説明文説明文説明文説明文</h4> <p><img ・・・・・></p> </dd> </div> </dl> ------------------------------------------------ dlタグの中には直接dtタグとddタグしか入れることができないということのようですが、 これはdivは入れられないということになるのでしょうか?? (dtはインライン要素のみ、ddはブロック要素もインライン要素も使えるということなので、 ddの中ではdivが使えると思うのですが・・・。) また、もしdivで囲えないとしたら、 今回の場合は、それぞれを一つのdlで囲ってしまうべきなのでしょうか?? ご存知の方いらっしゃいましたら、よろしくご指導ください。お願いします。

    • ベストアンサー
    • CSS
  • divでレイアウト構成

    以前にこちらでテーブルでのデザインは良くないと 指摘を受けたものです。そのコードは下記になります。 http://okwave.jp/qa/q6993356.html <body> ・・・ <table><tr> <td><img src="img1"></td> <td><p>説明文</p></td> </tr></table> ・・・ </body> 上記table部分をdivに置き換えるよう指示を受け、 実際にokwaveやyahooなどでも枠組みのデザインは ほとんどがdivで行われていると分かりました。 今回の質問はその確認の手続きですが 上記テーブルをdivに変えてCSSにすればOKかです。

    • ベストアンサー
    • CSS
  • floatさせたdivタグを折り返させたくない

    Javascriptで開いた子ウィンドウ内のページについて レイアウトで困っております。 以下のようなブロック要素の配置について <div> <div style="float; left"> コンテンツA </div> <div style="float; left"> <div> コンテンツB </div> <div> コンテンツC </div> </div> <div style="clear: both"> </div> 以上のような配置になっており、 コンテンツ3の中身をJavascriptで書き換えています。 その際、コンテンツCの横幅が変動し右に大きく広がる場合があります。 それにより、ウィンドウサイズによってはコンテンツBCがコンテンツAに回りこんでしまいます。 何故こうなるかは理解出来るのですが、対策が思い浮かびません。 ●思いついたが避けたい対応策 ・親のdivタグに想定出来る最大値のwidthを設定する ・tableタグによるレイアウト 良い対応策はございませんでしょうか? よろしくお願いします。

  • imgタグは何で囲むのが良いか

    皆さんはimgタグは何で囲んでいますか? <div> <h3>タイトルタイトル</h3> <p>テキストテキストテキストテキストテキストテキスト</p> <img src="xxxx.jpg" alt=""> </div> 例えばこういうような時に、何で囲むべきかというのをいつも迷います。 ブロック要素で囲むべきである、というのは何となく認識していますが、ここをdivで囲むのも何か違うような気がするし、 pで囲むのも「段落」と見なせるような画像でないと何となく気持ち悪いです。 最近はaltのある画像は「これは段落だろう」と自分を納得させてpで囲み、 altを空にしているものは囲まずにそのまま置いたりしています。 レイアウト上、ブロック要素が必要になった時にはdivで囲んでみたり…。 私はイメージ的な画像(情報としては必要ない画像や、直前のテキストとかぶっている画像文字等)にはあえてaltは付けずに空にすることが多いので、ちょいちょいこういう事で迷います。 スマートなやり方をご教授ください。

    • ベストアンサー
    • HTML
  • 画像はDIVタグとPタグの両方で囲むの?

    クラブのホームページを作っているんですが 分からない事がありますので質問させていただきます。 勉強している本で画像もPタグで囲むのが正しいと載ってましたので ------------------------------------------------------- <div><p><img src="○○" alt="なし"></p></div> ------------------------------------------------------- と記述していたんですが、 色々勉強していくとPタグではなく、 ブロックレベル要素で囲むのが正しいとの事ですので <div>も<p>もブロックレベル要素なので ------------------------------------------------------- <div><img src="○○" alt="なし"></div> ------------------------------------------------------- とか ------------------------------------------------------- <p><img src="○○" alt="なし"></p> ------------------------------------------------------- みたいに無理に<div>と<p>の2つではなく <div>だけ、または<p>だけで、囲むのも問題はないのでしょうか? ※スタイルシートでレイアウトしています。 ※画像はスペースを空ける為だけですので<div>~</div>に文章はありません。  同じくaltの指定もしていません。 ※画像でスペースを空けるは、あまり良くない事は分かっていての質問です。 別の質問ですけど、あるホームページでH2(見出しタグ?)で ------------------------------------------------------- <div><h2>タイトル</h2></div> <div><p>文章</p></div> ------------------------------------------------------- が正しいと載っていたんですが ------------------------------------------------------- <div> <h2>タイトル</h2> <p>文章</p> </div> ------------------------------------------------------- では間違っているんでしょうか? すいません、もう1つ質問です。 http://openlab.ring.gr.jp/k16/htmllint/htmllint.html でチェックしてみると98点でした。 私のパソコンや、友達のパソコンでは、ちゃんと表示されてるんですが 100点じゃないと、表示されないパソコンもあるんでしょうか? 学校が短大で男子がいないので HTMLやCSSが苦手な子ばかりです。 私と副部長で頑張ってほぼ完成しましたが、 はじめてホームページを作った初心者で 細かい事を教えてもらえる人がいなくて困ってます。 初心者の質問で申し訳ありませんが よろしくお願いします。

  • 「divが空です」のエラーを出したくない

    下記、枠の中にフロートした写真を置きましたが、Firefoxでは写真が枠を飛びでてしまいます。 mawarikomiが終わったあとに、clear:leftの空divを置けば解決しますが、バリデートで「divが空です」とエラーがでるのはどうも気分が悪く・・・。 下記URL http://www.kuroduction.com/doc/translation/position_is_everything/easyclearing.html# ではベストな方法みたいなことが載っているのですが、よくわかりませんでした。 みなさん、どうしていらっしゃるのでしょうか。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>つきぬける</title> <style type="text/css"> <!-- .kakomi { padding: 3px; width: 500px; border: 1px solid #77AAEC; } #mawarikomi { margin: 0px; padding: 0px; width: 490px; height: auto; } #mawarikomi img { float: left; margin-right: 10px; } --></style> </head> <body> <div class="kakomi"> <div id="mawarikomi"><img src="***.jpg" width="100" height="100"> <p>説明・説明・説明・説明・説明・説明・</p> </div> </div> </body> </html>

    • ベストアンサー
    • HTML
  • <div>テキスト</div>

    HTMLを記述する際に文書構造を明確に…と考えています。 見出しにはHタグ、本文にはPタグ、リストにはliなどなど。 ある書籍でbody直下にテキストを配置するのはいけない、と書いてありました。テキストに意味付けがなされていないから、というようなことが理由として書いてありました。 そこで思ったのですが、divはもともと意味をなさないブロック要素ですが、この直下にテキストを配置すると、このテキストは文書構造上意味を持たないものになって、文法上間違っているのでしょうか? 今のところ、 <div><p>テキスト</p></div> のように、pで意味付けをするのが正しいのかな、と考えていますが、W3Cのホームページではdiv直下にテキストを配置しているものがありました。 皆さんのご意見を伺いたいです。 div直下のテキストは正しいのか、間違っているのか、どうでもいいのか?

    • ベストアンサー
    • HTML
  • 横並びにするCSS

    以下のdivタグ内のimgタグを横並びに表示するCSSは .container{ display:flex; } で合っていますか? <body> <section class="container cf"> <div class="hoge"><img src="img1.jpg" alt=""></div> <div class="hoge"><img src="img2.jpg" alt=""></div> <div class="hoge"><img src="img3.jpg" alt=""></div> <div class="hoge"><img src="img4.jpg" alt=""></div> </section> </body>

    • ベストアンサー
    • CSS
  • CSSで横並び

    divタグ内のimgタグを横並びに表示するCSSは、 .container cf{ display:flex; } で合っていますか? <body> <section class="container cf"> <div class="hoge"><img src="img1.jpg" alt=""></div> <div class="hoge"><img src="img2.jpg" alt=""></div> <div class="hoge"><img src="img3.jpg" alt=""></div> <div class="hoge"><img src="img4.jpg" alt=""></div> </section> </body>

    • ベストアンサー
    • CSS
  • Web勉強中の初心者です。pタグとdivタグの区別

    こんにちは。 web勉強を初めて3ヶ月の初心者です。 よく、コーディングしていて、imgタグを入れる際に、pタグを使うべきかdivタグを使うべきか迷ってしまいます。 最初は、わけもわからずdivで括ればいいのだと思っていましたが、そうでもないと気づき始めて、改めて本やネットで調べたらpタグは「段落」、divタグは「まとまり」となっていました。自分としては、ある程度のグループとして入れる場合はdivで囲んで、ある程度の量がある文章ではpタグという認識です。 ただ、そうすると画像を1枚入れたりとか、少しの文章と背景だけを入れたいときは、divではないだろうから、pタグなのかな?とか、それともタグを入れずに、前後のdiv間に、文章やimgだけで入れるべきなのかな?と考えていくと正直混乱してしまいます。 もしくは、そういう場合は前後のdivも含めた自分のグループの分け方自体が、おかしいのかもしれません。 わかりにくい文章ですいません。 いいアドバイスありましたら、よろしくお願いします。

専門家に質問してみよう