如何在浮动父元素(已知大小)内垂直居中任意大小的子元素?

发布于 2024-08-16 07:28:21 字数 774 浏览 3 评论 0原文

如何将任意大小的子元素垂直居中在浮动父元素(已知大小)内?

显示:表格单元格;当元素浮动时,vertical-align: middle; 似乎不再起作用。

我在这里创建了一个SSCCE:http://mathiasbynens.be/demo/center -vertically-inside-float

不带浮动,一切都按预期进行。但是一旦父元素浮动,垂直方向对齐失败。

有什么想法可以解决这个问题吗?

编辑:我应该补充一点,子元素应该是图像。在我的示例页面中,我使用了段落,因为我假设我可以使用 display: block;p 元素所需的任何 CSS 应用到 img 元素> 也是如此。 (失败。)

How to vertically center a child element of arbitrary size inside a floated parent element (of known size)?

display: table-cell; vertical-align: middle; no longer seems to work when the element is floated.

I created an SSCCE here: http://mathiasbynens.be/demo/center-vertically-inside-float

Without float, everything works as it should. But as soon as the parent element is floated, the vertical alignment fails.

Any ideas how to work around this?

Edit: I should’ve added that the child elements are supposed to be images. In my example page I’m using paragraphs, since I assumed I could apply whatever CSS those p elements needed to img elements with display: block; as well. (Fail.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

2024-08-23 07:28:21

如果是单行,则将pline-height设置为容器的高度。

If it's one-liner, then set line-height of p to height of the container.

落花随流水 2024-08-23 07:28:21

浮动会禁用表格单元格,因为单元格不能浮动。所以基本上我会推荐标准的东西——使用浮动垫片技术或绝对定位。

Float disables table-cell, because cells can’t be floated. So basically I would recommend the standard stuff – using floated shim technique or absolute positioning.

巴黎夜雨 2024-08-23 07:28:21

好的,感谢 porneL的回答,我找到了解决我问题的方法。

在我的 SSCCE 中,我使用段落作为子元素(到目前为止,porneL 给出了正确的答案),但我真正需要的是图像。事实证明这需要一些额外的 CSS:

div { width: 780px; height: 200px; vertical-align: middle; text-align: center; float: left; }
 div img { vertical-align: middle; }

谢谢你们的帮助,伙计们!

Ok, so thanks to porneL’s answer, I found the solution to my problem.

In my SSCCE I used paragraphs as child elements (and porneL gave the correct answer as far as that goes), but what I really needed were images. Turns out this needs a little bit of additional CSS:

div { width: 780px; height: 200px; vertical-align: middle; text-align: center; float: left; }
 div img { vertical-align: middle; }

Thanks for the help, guys!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文