html - 在 CSS 中水平对齐 float 元素

标签 html css

  1. 我有无限/未绑定(bind)数量的 DIV 标签向左浮动。

  2. 随着浏览器大小的调整,DIV 标签换行到下一行。

  3. 因为 DIV 标签根据屏幕右侧是否有足够的间距来换行,当它们换行时,会在屏幕右侧留下很大的空间。

  4. 因此,如果 DIV 为 32x32,则屏幕右侧将留下 32x32 的空间。

在这种情况下,我希望父 DIV 将内容居中,因此如果换行后右侧有 32px 的空间,它会调整子内容在右侧有 16px左侧和右侧 16px。

例如,如果内容不居中,屏幕将如下所示:

[DIV] [DIV] [DIV] [DIV]..GAP.|

[DIV] <-Wrapped.................|

我想将这些 DIV 放在父级中,这样当 DIV 被包装时,内容将如下所示:

.....[DIV] [DIV] [DIV] [DIV].....| <- Centered, but still floating left.

.....[DIV]..............................| <- Parent is centered, but DIV is still floating left.

仍然允许换行,但随着浏览器水平缩小或扩大,父 DIV 会自动调整子 DIV 的内容居中。

我怎样才能做到这一点?

最佳答案

正如您所描述的那样,您无法做到。您可以将所有 div 设置为 display:inline-block 而不是 float left,然后将它们全部放在一个带有 text-align center 的大包装 div 中。不过,这将使跳下一行的 div 居中而不是左对齐。

或者,您可以设置一个包装器 div,将其宽度设置为页面的百分比,以及最小像素宽度,然后将边距设置为 0 auto。像这样的东西:

div.wrapper {width:90%; min-width:800px; margin: 0 auto;}

我怀疑这会按照您的想法行事,但我还没有测试过。希望这能激发一些想法!

关于html - 在 CSS 中水平对齐 float 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3743336/

相关文章:

html - div 的背景问题

html - 使用 CSS 缩小元素的高度以匹配其父元素

internet-explorer - Pixelperfect Upscaled Sprite 背景图像在 IE 中仍显示为平滑/双三次图像?

css - 如何将两个 DIV 放置在水平固定标题内并使所有内容垂直对齐?

jquery - 使用jquery在内部创建带有脚本标签的div

javascript - 桌面版 Chrome 支持的最大图像尺寸是多少?

css - HTML5 SVG 100% 宽度和 100% 视口(viewport)高度?

css - CSS 是否可以同时选择 sibling 和后代?

python - 按日期升序和降序排列的列

html - CSS 样式表不起作用?