Вы должны установить значение высоты div, а затем установить line-height: value_of_div_height. line-height 100% не будет работать, потому что он будет принимать значение текста, а не элемента div. Работает с выравниванием по вертикали или без него, если высота = высота строки
div {
height: 200px;
line-height: 200px;
display: block;
}
Альтернативный метод, если вы хотите сделать с абзацем внутри элемента div: http://www.w3.org/Style/Examples/007/center
DIV.container {
min-height: 10em;
display: table-cell;
vertical-align: middle }
...
<DIV class="container">
<P>This small paragraph...
</DIV>