如何垂直对齐文本?

发布于 2024-07-26 17:25:16 字数 79 浏览 4 评论 0原文

如何垂直对齐浮动div中的文本? 例如:我有一个固定高度的动态内容。 如果内容很小或很大,它必须自动垂直对齐。

谢谢

How to vertically align the text in a floated div? For example: I have a dynamic content with fixed height. if the content is small or big it has to automatically vertically align.

Thanks

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

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

发布评论

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

评论(5

仙女山的月亮 2024-08-02 17:25:16

表格单元格是最简单的解决方案。

Javascript 是一种替代方案(测量 div 的大小和文本大小,然后调整填充、行高或其他)。

编辑:或者这个很棒的 css:

CSS

div#container {
    border: solid 1px;
    height: 300px;
}

div#content {
    border: solid 1px;
}

div#balance {
    border: solid 1px;
    /* gotta be 100% */
    height: 100%;
}

div.valign {
    /* firefox 2 */
    display: -moz-inline-box;
    /* everybody else */
    display: inline-block;

    vertical-align: middle;
}

/* IE 6 and 7 hack */
html* div.valign {
    display: inline;
}

HTML

<div id="container">
    <div id="balance" class="valign"></div>
    <div id="content" class="valign">
        Blah blah blah blah<br/>
        Blah blah blah blah<br/>
        Blah blah blah blah<br/>
        Blah blah blah blah<br/>
        Blah blah blah blah
    </div>
</div>

一直想写一篇关于这个的博客文章,我想是时候了。

Table cells are the easiest solution.

Javascript is an alternative (measure the size and text size of the div, then adjust padding, or lineheight, or whatever).

edit: Or this awesome css:

CSS

div#container {
    border: solid 1px;
    height: 300px;
}

div#content {
    border: solid 1px;
}

div#balance {
    border: solid 1px;
    /* gotta be 100% */
    height: 100%;
}

div.valign {
    /* firefox 2 */
    display: -moz-inline-box;
    /* everybody else */
    display: inline-block;

    vertical-align: middle;
}

/* IE 6 and 7 hack */
html* div.valign {
    display: inline;
}

HTML

<div id="container">
    <div id="balance" class="valign"></div>
    <div id="content" class="valign">
        Blah blah blah blah<br/>
        Blah blah blah blah<br/>
        Blah blah blah blah<br/>
        Blah blah blah blah<br/>
        Blah blah blah blah
    </div>
</div>

Been meaning to make a blog post about this for a while, I think it's time.

德意的啸 2024-08-02 17:25:16
<div style="display: table-cell; vertical-align: middle;">I'm in the middle!</div>
<div style="display: table-cell; vertical-align: middle;">I'm in the middle!</div>
我还不会笑 2024-08-02 17:25:16

Chris Coyier 就此编写了一篇出色的教程:http://css-tricks。 com/vertically-center-multi-lined-text/

我自己用过它,效果很好。

Chris Coyier wrote an excellent tutorial on just this: http://css-tricks.com/vertically-center-multi-lined-text/

I've used it myself, and it works perfectly.

半﹌身腐败 2024-08-02 17:25:16

我以前遇到过这个问题。
我将引用专家的话,这样我就不会捏造这一点:
“...内部对象绝对定位在区域高度的一半。然后向上移动其高度的一半。”

这一切都可以使用%而不是精确的像素来完成,以防数据丢失从数据库生成,每个页面的高度各不相同。

来源:此处

演示:链接于上面的页面

这是我的第一个答案...

I've come across this problem before.
I'll quote the experts so I don't fudge this up:
"...internal object is absolutely positioned in half of the area height. Then is moved up by half of its height."

This can be all done with % instead of exact pixels, in case the data is generated from a database and the height varies with each page.

Source: here

Demo: linked on the above page

Here goes my first answer...

阿楠 2024-08-02 17:25:16

您是否尝试过垂直对齐:中间; ?

Have you tried vertical-align: middle; ?

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