lucy24 - 4:01 am on Aug 6, 2012 (gmt 0)
It really goes back to HTML. There can be HTML without CSS but there can be no CSS without HTML.
A web page is essentially a scroll. The width of an element is determined by the width of the viewport. (Your browser window, or the size of your cell phone, or whatever it may be.) The height is determined by the content. So in most circumstances, "vertical-align" for a block-level element would be meaningless. It is already just as tall or short as it needs to be. Vertical alignment is for inline things, like footnote tags or subscripts or fancy text.
Table cells are the obvious exception, because there will normally be two or more side by side. The tallest cell in each row forces all the others to be the same height. So that's where you get leftover vertical space and you have to decide where to put it: above or below the text. The default vertical alignment for a table cell is "center". I don't know about you, but that's generally the last way I'd want it.
Other than in tables, the only time vertical alignment is meaningful is when you've got pieces arranged side by side in an "inline-block" configuration. Technically this option has been around for a long time-- that is, long by www standards ;) --but it's still a pretty newfangled idea. I think most people are scared to change the "display:" option in CSS. Stick with block vs. inline, whatever the default is, and there's a lot less room for calamity.