Vertikale positionierung von Text in <a>
johannes
- css
Abend,
ich versuche ein Menu mit einer Aufzählung zu machen. Dabei habe ich volgendes Problem: Ich schaffe es nicht, den Text in einem <a> vertikal mittig zu positionieren, auch vertical-align:middle;
versagt, obwohl height der Elternelemente auf 100% gesetzt ist (erkennbar an den Rahmen[1]).
Wie positionere ich den Text vertikal mittig, sprich, warum nimmt firefox vertical-align:middle;
nicht?
g johannes
*[1], die Problemseite: http://de.geocities.com/johannes293/menu/
Markup:
<div class="menu">
<ul>
<li><a href="./site.php?site=home">Home</a></li>
<li><a href="site.php?site=angebote">Angebote</a></li>
[...]
</ul>
</div>
Css:
.menu { float:right; border:1px solid black; height:40px; vertical-align:middle;}
.menu ul li a, .menu ul li a:visited { display:block; text-align:center; border:1px solid orange; vertical-align:middle; height:100%;}
.menu ul { height:100%; padding:0; margin:0; list-style:none; vertical-align:middle; border:1px solid #FF00FF;}
.menu ul li { height:100%; float:left; vertical-align:middle; width:auto; border:1px solid green;}
vertical-align:middle funktioniert nur im Kontext von table-tags. Du brauchst aber eher ein entsprechendes Padding oben und unten - oder eine korrekte Line-height.
Gruß, LX
vertical-align:middle funktioniert nur im Kontext von table-tags.
Oh... wusste ich nicht.
Du brauchst aber eher ein entsprechendes Padding oben und unten - oder eine korrekte Line-height.
ahhh ja, das funktioniert wunderbar, danke!
ich habe line-height auf den gleichen wert gesetzt wie die gesamthöhe des divs.
aber diese lösung, und auch die das setzen von padding-top und padding-bottom setzen voraus, dass die gesamthöhe des menüs bekannt ist.
gibt es auch eine Möglichkeit, das problem zu lösen, wenn height nicht bekannt ist, so wie man auch margin:0 auto;
setzen kann?
denn ich verabscheue pixelgenaue layouts...
g johannes