How to vertical align a text?

2019-02-03 08:26发布

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

6条回答
Juvenile、少年°
2楼-- · 2019-02-03 09:07

I know this is going to ruin my reputation, but ... use a table cell. Any cross-browser CSS solution for vertical alignment will be twice as difficult to maintain, being optimistic.

查看更多
霸刀☆藐视天下
3楼-- · 2019-02-03 09:08

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...

查看更多
Bombasti
4楼-- · 2019-02-03 09:16

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.

查看更多
孤傲高冷的网名
5楼-- · 2019-02-03 09:23
<div style="display: table-cell; vertical-align: middle;">I'm in the middle!</div>
查看更多
Animai°情兽
6楼-- · 2019-02-03 09:25

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.

查看更多
甜甜的少女心
7楼-- · 2019-02-03 09:25

Have you tried vertical-align: middle; ?

查看更多
登录 后发表回答