クロスブラウザーのサポートが必要な場合、特に IE や古いブラウザーの場合、JavaScript やテーブルを使用する場合を除き、物事を垂直方向に中央に配置するのは難しい作業になる傾向があります。すべての一般的なブラウザーは、テーブル セル内での垂直方向の中央揃えをサポートしているため、1 つのオプションは、<li>要素の中央揃えを忘れて<ul>、代わりにwithとその中に 1 つのセルtablewithを作成することです。これは一般的な回答ではありませんが、この SO responseでよく議論されているように、テーブルを使用することが最も実用的な場合があります。 height: 100%vertical-align: middle
テーブルを使用したくなく、display:table-cellブラウザのサポートに使用できない場合は、おそらく JavaScript を使用する必要があります。繰り返しますが、ul を ではなくコンテナの中央に配置しようとしliますul。アプローチは通常、コンテナの高さを見つけ、 の高さを見つけ、ul差を取り、半分に切り、 のtopまたはmargin-topをulその値に設定します。これは、配置を使用するかどうかに応じて異なりますabsolute。
ページ内のリストのコンテキストを確認せずに、正確な最適なソリューションを提供することは困難です。
absoluteこれは、ポジショニングと JavaScriptを使用したフィドルです。margin-topこのコンテキストでのデフォルトの使用positionは、外側の div でマージンが崩壊するため注意が必要ですが、使用できる場合は、使用margin: 0 autoして水平方向の中央揃えを行うことができます。これは、幅を無視できるため便利です。