html - 两个如何使用 CSS 从不同宽度的内容创建一个两列的动态布局?

标签 html css multiple-columns

我正在尝试为产品信息页面创建 CSS,但在根据内容动态设置宽度时遇到了一些问题。

我们想在产品描述旁边显示产品图片。图片HEIGHTS都一致;图像宽度不同。我们希望文本列宽度根据放置图像后剩下的内容动态调整大小。

更棘手的是,我们希望能够灵活地在右列或左列中使用图像。

<div id="leftcolumn"><img src="yellowscraper"></div>
<did id="rightcolumn"><p>[yellowscraper text]</p></div>

<div id="leftcolumn"><p>[brown scraper text]</p></div>
<div id="rightcolumn"><img src="brownscraper"></div>

<div id="leftcolumn"><img src="marmite"></div>
<did id="rightcolumn"><p>[marmite text]</p></div>

<div id="leftcolumn"><p>[yellowscraper text]</p></div>
<div id="rightcolumn"><img src="yellowscraper"></div>

Mockup

考虑:

#leftcolumn {float: left}
#rightcolumn {float: right}
.clear { clear: both;}

但我不知道如何定义 width 参数。包含图像的列将是图像的宽度。其他列将是剩下的......基本上是容器宽度减去图像宽度。

是否有一些很酷的 CSS 技巧可以做到这一点?我怀疑我可能只是将文本与图像的右侧或左侧对齐,但我很想知道是否有 CSS 方法可以实现这一点。

最佳答案

使用 float 应该可以正常工作 - 它不是一个柱状布局,东西只是......卡在它想挂的地方。

http://jsfiddle.net/FD5Uy/

这就是你要的吗?请注意,我只将 float 放在包含图像的 div 上,而不是将 float 放在图像上和文本上:

<div class="float-left"><img></div>
<p>
    The image will be to the left of this paragraph,
    I don't need to float this tag to the right...
</p>
<div class="float-right"><img></div>
<p>
    Same same...
</p>

如果您不需要 div 来做任何其他事情,您可以将 float 类直接应用于您的图像,它仍然可以正常工作。

关于html - 两个如何使用 CSS 从不同宽度的内容创建一个两列的动态布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20985974/

相关文章:

javascript - 如何在不调用任何函数的情况下使用javascript显示和隐藏div?

html - Bootstrap 卡/卡列破坏

css - 如何在 html 和 css 中使用标签和文本框创建多个可调整大小的列

html - 无法居中CSS导航栏

html - 启动页面时,将调整图像大小

jquery 更改/切换?

html - 按顺序对齐具有不同高度的两列中的元素

css - 如何创建一个简单的 CSS 徽章系统

javascript - 在 IE 6 中如何让 float 页脚粘在视口(viewport)底部?

MySQL:根据数量列选择多行