我正在尝试设计一些基本上具有以下结构的 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 获得了 thediv.imageContainer
和div.description
右边,但是把div.details
下面的和放在描述的右边,看起来好像它已经被赋予了 a "clear:left"
(实际上,它完全在 之外div.outer
):
.imageContainer { float: left; }
.description { width: 50%; }
.details { width: 50%;
float: right; }
根据我在 SO 上找到的其他几篇帖子的建议,我尝试添加:
.outer { overflow: hidden; }
它延长了 thediv.outer
以便它包含div.details
- 但div.details
相对于div.description
.
在我的示例 HTML 中,我发现如果我交换div.description
anddiv.details
标记的顺序,我会得到它看起来就像我想要的一样。就示例而言,这很好,但并不能帮助我避免深入研究那些生成我真正想要样式化的 HTML 的极其可怕的 PHP 代码。:-/
有什么办法让我只用 CSS 来完成这个吗?
(我意识到我可以用 Javascript/jQuery 摆弄 DOM,但这对我来说似乎很笨拙。)