I know this is old, but I just had the same issue, and I agree that none of these solve it. This one may not be 100% cross-browser (haven’t done testing) but it works!
Now the restriction is you have to put in the line-break yourself, but it seems that is what needs to be done regardless in this kind of situation.
http://jsfiddle.net/28aef/2/
div.textContainer {
text-align: center;
border: 1px solid #000;
height: 100px;
padding: 10px 0;
}
div.textContainer p {
display: inline-block;
text-align: left;
}