中央揃えのテキストとガターを使用して、2 行に 8 項目の両端揃え、流動的な幅のメニューを作成しています。
これは、約 24% の幅で 1 行に 4 つの項目があることを意味します。ガターは透明です。折り返す長いメニュー テキストをセンタリングすることを除いて、すべてが整っています。テキストが折り返されるとすぐに、2 番目のテキスト行がメニュー項目の下に「落ちます」。
長いテキストが折り返されても垂直方向の中央に配置されるように、メニュー項目の行の高さを設定するにはどうすればよいですか?
私は ul タグと li タグの両方で疑似要素を使用していますが、より良い解決策 (javascrip を含む) があれば、それを受け入れます。2 行を超えるメニュー項目はなく、メニューには小さな画面用のモバイル メニュー ソリューションがあります。通常のブラウザのサポートと IE8+
HTML は WordPress によって生成されるため、あまり変更することはできません。
以下のコード、画像、フィドル。
HTML:
<div id="wrapper">
<ul >
<li><a href="#">Normal text</a></li>
<li><a href="#">Normal text</a></li>
<li><a href="#">Normal text</a></li>
<li><a href="#">Normal text</a></li>
<li><a href="#">Longer text Longer text Longer text</a></li>
<li><a href="#">Normal text</a></li>
<li><a href="#">Normal text</a></li>
<li><a href="#">Normal text</a></li>
</ul>
</div>
CSS:
#wrapper {
max-width: 1000px;
background: grey;
}
ul {
text-align: justify;
-ms-text-justify: distribute-all-lines;
text-justify: distribute-all-lines;
padding: 0;
margin: 0;
font-size: 0.1px;
}
ul:after {
content: '';
width: 100%;
display: inline-block;
font-size: 0;
line-height: 0
}
li {
width: 24%;
height: 100px;
vertical-align: top;
display: inline-block;
*display: inline;
zoom: 1
border: 1px solid black;
background-color: #ddd;
font-size: 22px;
color: #000000;
margin-bottom: 1%;
text-align: center;
}
li a {
text-decoration: none;
}
li a:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
line-height: 1px;
text-align: center;
}