1

这可能听起来很奇怪,但我有一些 css 可以对齐我的 div。在一个地方,我还使用http://www.brunildo.org/test/img_center.html以图像为中心。

现在我希望我的 div 在一个更大的 div 中,如果这一行已满,则转到另一行。浮动:左似乎是答案。问题是它破坏了我的格式。包括上述链接中的解决方案。我有这个测试代码。如果我删除宽度并浮动它看起来很好,除了它可能占用太多空间并且不会转到另一行。

我在想我可以在outerdiv上使用float并将图像居中。但是 float: left 仍然在破坏它。我希望有一种方法可以删除浮动,因此每个 div 确实会向左移动,但内部的 div 正确居中不会破坏我的格式。

<style type="text/css">
.wraptocenter {
    display: table-cell;
    text-align: center;
    vertical-align: middle;
    width: 200px;
    height: 200px;
    background: blue;
}
.wraptocenter * {
    vertical-align: middle;
}
/*\*//*/
.wraptocenter {
    display: block;
}
.wraptocenter span {
    display: inline-block;
    height: 100%;
    width: 1px;
}
/**/
div.c
{
background: red;
overflow: hidden;
min-width: 400px;
max-width: 400px;
}
div.c div
{
float: left;
}
</style>
<!--[if lt IE 8]><style>
.wraptocenter span {
    display: inline-block;
    height: 100%;
}
</style><![endif]-->

<div class="c">
<div>

<div>
<div class="wraptocenter"><span></span><img src="a.jpg" alt="/a.jpg"></div>
<div class="wraptocenter"><span></span><img src="a.jpg" alt="/a.jpg"></div>
<div class="wraptocenter"><span></span><img src="a.jpg" alt="/a.jpg"></div>

</div></div></div>
4

1 回答 1

0

常规 olddisplay:inline可用于图像本身(或容器 div)。这将使项目根据封闭 div 的宽度流入多行。

为了使顶级 div 居中,margin: 0 auto应该这样做(如果父级有宽度),或者<center>如果没有,则使用好的旧标签。

于 2010-03-20T08:57:58.003 回答