TYPO3 (簡略化) によって生成された次の HTML があります。
<div class="image">
<img src="some-image.jpg"/>
</div>
<div class="text">
<p>
<b>foo</b> Some text of varying length, sometimes multiple lines, sometimes not. sit amet enim ultrices a tempus nulla lobortis.
</p>
<p>
<b>bar</b> Short text.
</p>
<p>
<b>baz</b> Another paragraph. sit amet enim ultrices a tempus nulla lobortis. Cum ociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam sed felis mauris, in rhoncus nisl.
</p>
</div>
画像の div は左にフロートし、段落は<b>
-tags 内の部分を箇条書きにしてリスト (ぶら下げインデント) としてフォーマットする必要があります。したがって、結果は次のようになります。
-------------------- foo Some text of varying length, sometimes
| | multiple lines, sometimes not. sit amet enim
| | ultrices a tempus nulla lobortis.
| Image |
| | bar Short text.
--------------------
baz Another paragraph. sit amet enim ultrices a tempus nulla lobortis.
Cum ociis natoque penatibus et magnis dis parturient montes, nascetur
ridiculus mus. Nullam sed felis mauris, in rhoncus nisl.
この動作を実現するにはどうすればよいですか?
私の試みは、段落全体をp {padding-left: 50px;}
でインデントし、太字のタグを でインデント解除することp b:first-child {margin-left: -50px;}
でした。画像がない場合、または画像が右に浮いている場合は問題なく機能しますが、画像が左に浮いている場合は、「箇条書き」(<b>
タグ) が画像の上にレンダリングされます。他のアプローチ(テキストインデントなどを使用)も試しましたが、問題は基本的に同じままです。
このソリューションは (:-)) IE6 で動作する必要はありません。他のブラウザーで動作しない場合は、おそらく許容されるでしょう。
編集:わかりました、TYPO3 機能を使用する解決策があります: コンテンツ要素の画像外観タイプを「テキスト内、左」から「テキスト以外、左」に変更します。div
次に、TYPO3 が withクラスに十分な大きさの左マージンを追加するtext
と、すべて正常に動作します。リストが画像よりも長い場合は、コンテンツ要素を 2 つに分割して、画像の下の段落を再び左に表示する必要があります。