css - 垂直对齐 PHP 脚本生成的重复 DIV,每行两个

标签 css html css-float vertical-alignment repeat

我有一个脚本,可以为我网站捐赠墙上写的每条消息生成一个 DIV。可以看到捐款墙here .

这是生成 DIV 的脚本部分:

foreach( $donors as $donor ):
$output = '<div class="donorbox"><p><strong>'.$donor->name.'</strong> donated '.$donation.'<small class="date time">on '.$datetime.'</small><blockquote class="comment">'.nl2br($donor->comment).'</blockquote></p></div>';
endforeach;

我已将每个donorbox DIV 的宽度设置为43.5%,并添加了float:left,以便每行始终适合2。

由于 DIV 将具有不同的高度,具体取决于用户写入消息的长度,因此 div 的显示相当不均匀(请参阅上面链接的页面)。因此,我想找到一种将 DIV 垂直居中的方法,以便每行始终有两个 DIV,但使它们显示更均匀,即使 2 个 DIV 的垂直中心点对齐。

当前实现的另一个问题是,当左侧 DIV 的高度大于右侧 div 的高度时,下一个 div 会保留在页面的右侧,而不是被迫位于页面右侧左侧,这不是我想要的。如果您查看页面并缩小浏览器窗口的宽度,您现在可以看到这一点。第三个捐赠箱 DIV 位于右侧。

为了让我所讲的内容更清楚,我在下面添加了两张图片:

当前

enter image description here

必需

enter image description here

最佳答案

如果您不确定元素的高度,请始终使用 display: inline-block 而不是 float。如果您现在更改它 - 它们将始终处于正确的位置。为了使它们垂直居中 - 只需向它们添加 vertical-align: middle :)

P.s.如果您需要 IE7 支持 display: inline-block; 添加 *display: inline; *缩放:1; ;)

关于css - 垂直对齐 PHP 脚本生成的重复 DIV,每行两个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11782175/

相关文章:

html - 图像上的半透明颜色层?

CSS float Div 问题

css - 如何让固定宽度 DIV 内的 float DIV 水平继续?

html - 外部容器 div 不会自动垂直扩展......为什么?

css - 我的背景图片不适合引导超大屏幕

javascript - 使用 HTML 5 的二维码阅读器问题

java - jsoup : How to search for date text from a webpage

javascript - jquery 检查选​​择框中是否未选择任何内容

css - 如何仅在另一个元素存在时向左浮动

html - 如何在鼠标悬停时使 div 在另一个元素上增长?