Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CSS - vertical-align not working

Tags:

html

css

I got some really basic HTML & CSS:

Here's the HTML:

<!DOCTYPE html> <html>     <head>         <meta charset="UTF-8">         <link rel="stylesheet" media="all" href="stylesheet.css">         <title>Hello, World!</title>     </head>     <body>         <header>             Hello<sup>World</sup>         </header>     </body> </html> 

Here's the CSS:

header {     vertical-align: middle;     height: 60px;     background-color: #00F; } 

But the text doesn't get aligned in the middle. Why not?

like image 260
ryyst Avatar asked Mar 26 '11 12:03

ryyst


People also ask

How do I align vertically in CSS?

To center both vertically and horizontally, use padding and text-align: center : I am vertically and horizontally centered.

Is vertical-align deprecated?

Deprecated as an attribute Occasionally you will see “valign” used on table cells to accomplish vertical alignment. e.g. <td valign=top> . It should be noted that this attribute is deprecated and should not be used.

How do I vertically align text in a div using CSS?

The CSS just sizes the div, vertically center aligns the span by setting the div's line-height equal to its height, and makes the span an inline-block with vertical-align: middle. Then it sets the line-height back to normal for the span, so its contents will flow naturally inside the block.


1 Answers

The vertical-align property only applies to:

inline-level and 'table-cell' elements

See this link.

You could use line-height to vertically center the text, just make it bigger than the actual font-size, however it is only effective if the text spans a single line.

Alternatively you could add padding to the top and bottom of the header element by equal values.

Edited as per comment: the obvious solution if using HTML5 header element would be to make it display: table-cell; instead of the default block which I think the reset CSS's apply.

like image 157
clairesuzy Avatar answered Sep 29 '22 08:09

clairesuzy