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?
To center both vertically and horizontally, use padding and text-align: center : I am vertically and horizontally centered.
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.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With