Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

vertically center header text

I am looking to increase the size of the header of a jquery mobile app. When I do that I need the title to be centred. I found that I can add a line like:

        line-height: 30px; 

to the css, but that is just far to much of a hack. I assume there must be a better way to do it.

<!DOCTYPE html>
<html>
    <head>
        <title>Page Title</title>
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.css" />
        <script src="http://code.jquery.com/jquery-1.4.3.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js"></script>
        <style type="text/css"><!--
            .ui-header {
                height: 50px;                
            }
            -->
        </style>  
    </head>
    <body>
        <div data-role="page">
            <div data-role="header">
                <h1>This Needs To Be Centred Vertically</h1>
            </div>

            <div data-role="content">
                <p>Page content goes here.</p>   
            </div>

            <div data-role="footer">
                <h4>Page Footer</h4>
            </div>
        </div>
    </body>
</html>
like image 986
TofuBeer Avatar asked Dec 16 '22 07:12

TofuBeer


1 Answers

The easiest way to vertically center text of a block element is by making the line-height the same as the height of said element. Note that this will only work if you have a single line of text.

line-height: 30px;
height: 30px;

On an inline or table-cell element, you could use vertical-align: middle to achieve the same effect.

Also note that forcing display: table-cell on an element will not work in IE6-7.

In your case, I would suggest going with the line-height/height technique.

like image 176
Leo Avatar answered Dec 28 '22 22:12

Leo