Hallo,
Ich verstehe deine Frage nicht ganz. line-height ist hier aber auch nur ein Hack; ein schlechterer als display: table-cell meiner Meinung nach.
bei tabel-cell habe ich wie schon beschrieben das Problem der Abstände zueinander. Klar lässt sich das, wie von Dir beschrieben lösen. Doch dann bin ich wieder am Ausgangspunkt und kann eigentlich auch gleich eine Tabelle nehmen.
...Ferner kann der Text in dem Element nicht zweizeilig sein, denn eine zweite Zeile würde dazu führen, dass der Text die Box verlässt...
Da hast Du recht, glücklicherweise benötige ich nur eine Zeile im Container. Deshalb reicht bei meinem Code die height-Angabe durch line-height zu ersetzen, wobei ich das natürlich auch nur als Krücke/Hack ansehe, doch mit dem Erfolg diesen MinimalHTMLCode zu haben:
...
<body>
<div>text</div>
<div>text</div>
<div>text</div>
</body>
...
Verschachtel ich das Ganze, kann ich auch eine Tabelle nutzen:
[code lang=html]
...
<table>
<tr>
<td>xxx</td>
<td>xxx</td>
<td>xxx</td>
</tr>
</table>
...
~~~[/code]
> display: table-cell und vertical-align: middle ist viel flexibler und hat solche Nebenwirkungen nicht. Diese Lösung sowie Flexbox wurde ja auch mehrfach gezeigt.
>
Ja funktioniert aber nur wenn ich mir eine Art Pseudotabelle bastele, wie in deinen Beispielen. Flexbox ist nicht empfehlenswert, mangels ausreichender Browserunterstützung. [Hier](http://blog.kulturbanause.de/2013/07/einfuhrung-in-das-flexbox-modell-von-css/) funktioniert bei mir keines der Demos.
Gruss
Mike