- ベストアンサー
floatの右側をdivで囲む方法とは?
- floatの右側をdivで囲む方法について説明します。
- 現在、図や表を含む文章の構成において、floatの右側をdivで括る方法があります。
- 具体的には、図の部分をdisplay:blockにし、説明文、表、説明文の3つを1つのdivで囲むことができます。
- みんなの回答 (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がデザインに引っ張られたらダメです。
お礼
またまた先生にはお世話になります。 この発想はありませんでした。 逆にimg1つをdivで囲むと怒られるかなと思ってました。 だからdisplay:blockを考えていました。 clearするのもdiv.sectionで行うのですね。 これは前にも教えてもらった方法です。 今回は1個しかありませんが、これで行ってみたいと思います。