私は、本質的に次の構造を持つHTML(これは、回避できればやりたくない恐ろしいPHPスクリプトによって生成されたもの)のスタイルを設定しようとしています。
<div class="outer">
<div class="imageContainer"><img src="image42.png" /></div>
<h1>The Title String</h1>
<div class="description">Lorem ipsum dolor sit amet, ... </div>
<div class="details">These are the details...</div>
</div>
をdiv.imageContainer
左にフロートさせ、をdiv.details
右にフロートさせて、説明テキストをそれらの間に流し込みます(説明テキストがたくさんある場合は、左の画像の下に)。
次のCSSはと右を取得しますが、説明の右下と右に、(実際には、完全に外れている)が与えられているようにdiv.imageContainer
見えます。div.description
div.details
"clear:left"
div.outer
.imageContainer { float: left; }
.description { width: 50%; }
.details { width: 50%;
float: right; }
SOで見つけた他のいくつかの投稿のアドバイスに従って、次のように追加してみました。
.outer { overflow: hidden; }
これは、 -div.outer
を含むようにを長くしますが、を相対的に同じ位置に残します。div.details
div.details
div.description
div.description
私の例のHTMLでは、タグとdiv.details
タグの順序を交換すると、希望どおりに表示されることがわかります。これは例としては素晴らしいことですが、私が本当にスタイリングしたいHTMLを生成しているそのひどく恐ろしいPHPコードの内臓を掘り下げることを避けるのに役立ちません。:-/
CSSだけでこれを達成する方法はありますか?
(私はJavascript / jQueryでDOMをいじることができることを理解していますが、それは私には厄介なようです。)