我希望有一种方法可以在没有 JavaScript 的情况下做到这一点。我有两个使用 inline-block 显示的元素。它们的宽度和高度均为 200 像素,因此它们都出现在同一行,除非浏览器的尺寸非常小(或使用移动浏览器)。我希望两个元素之间有 50px 的空间,所以在第二个元素上我添加了“margin-left: 50px”,效果很好。当浏览器调整到两个元素不能放在同一行的大小时,第二个元素会换行到下一行,这就是我想要它做的。问题是第二个元素仍然有 50px 的左边距,所以元素没有出现居中。我可以添加 JavaScript 来检测容器高度何时发生变化(即包裹到下一行的元素)并删除左边距,
这是我的代码,简化:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<div id="wrapper" style="text-align: center;">
<div id="elem1" style="display: inline-block; background-color: #f00; width: 200px; height: 200px;"></div>
<div id="elem2" style="display: inline-block; background-color: #00f; width: 200px; height: 200px; margin-left: 50px;"></div>
</div>
</body>
</html>
小提琴:http: //jsfiddle.net/YRshx/