Domanda

Io voglio avere la mia lista (NAV) di allineare al centro di un'immagine (logo). Ho provato ad utilizzare vertical-align: middle;, ma non riuscivo a farlo funzionare quando ho galleggiato le immagini sinistra e destra.

Ecco il mio codice:

HTML:

<div id="head">
    <img id="logo" src="logo.png" />
    <ul id="nav">
        <li><a href="#">Item 1</a></li>
        <li><a href="#">Item 2</a></li>
        <li><a href="#">Item 3</a></li>
    </ul>
</div>

CSS:

#head {
    margin-top: 2px;
    width: 100%;
}
    #logo {
        float: left;
        }

    ul#nav {
        float: right;
        }

        ul#nav li {
            display: inline;
            list-style-type: none;
            }

Ho preso tutte le vertical-align: middle; di da dove li ho messi (ho provato in ogni elemento, anche se è stato solo dovrebbe essere applicato a Logo, da quello che ho letto.)

In ogni modo, tutto l'aiuto sarebbe apprezzato.

È stato utile?

Soluzione

Vertical-align:middle allinea la mediana di elemento figlio alla mediana di elemento padre. Se tutti gli elementi figlio sono float:left, quindi il genitore ha un'altezza di 0px e quindi la sua mediana è al di sopra degli elementi secondari.

Quindi, si potrebbe aggiungere un <br style='clear:both' /> dopo il vostro menu e il DIV potrà finalmente ottenere la sua dimensione verticale.

Altri suggerimenti

tabella con un'unica fila, è particolarmente utile qui.

<div id="head">

<table>
<tr>

<td>
  <h1>Fluid Heading</h1>
</td>

<td style="width: 5%">
  <img id="logo" src="logo.png" />
</td>

<td style="width: 5%">
  <ul id="nav">
    <li><a href="#">Item 1</a></li>
    <li><a href="#">Item 2</a></li>
    <li><a href="#">Item 3</a></li>
  </ul>
</td>

</tr>
</table>

</div>

CSS:

.head td { vertical-align: middle; }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top