bootmetro フレームワークを使用して、ヘッダーに 2 つのメニューを定義しようとしています。1 つ目はメイン メニューで、2 つ目はユーザー メニューです。
なんらかの理由で、メニュー項目の行間が大きすぎて、2 回目にメニューが正しく表示されません。
メニューの作成に使用されるコードは次のようになります
<div class="dropdown">
<a class="header-dropdown dropdown-toggle accent-color" data-toggle="dropdown" href="#">
Actions
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="#">item1</a></li>
<li><a href="#">item2</a></li>
<li><a href="#">item3</a></li>
<li class="divider"></li>
<li><a href="#">item4</a></li>
</ul>
</div>
私が遭遇した問題は、以下のスクリーンショットに示されています。私の 2 番目のメニューでは、メニュー項目はメニューのすべてを使用しません。
アップデート:
問題は bootmetro CSS スタイルシートにあるようで、firebug は検索を少し絞り込みます (Thanh Trung に感謝します!)。検査モードでは、a href が 2 番目のメニューのメニュー項目 (li) を埋めていないのに対し、最初のメニューでは最大幅になっていることがはっきりとわかります。
bootmetro CSS の部分は次のようになります。
.dropdown-menu li > a {
display: block;
padding: 3px 20px;
clear: both;
font-weight: normal;
line-height: 20px;
color: #333333;
white-space: nowrap;
}
追加の質問: この '>' は何を引き起こしますか? 私は前にそれを見たことがありません。
両方のメニューで CSS クラス「dropdown-menu」が使用されますが、この CSS クラスの本体を削除すると、それに応じて最初のメニューのみが変更されます。
主な質問: では、なぜこのクラスが 2 番目のメニュー項目に適切に継承されないのでしょうか?
完全を期すために、2 番目のメニュー (アーティファクトを表示するメニュー) の HTML コードを再度示します。
<div class="dropdown pull-left">
<a class="header-dropdown dropdown-toggle pull-right" data-toggle="dropdown" href="#">
<b class="icon-settings"></b>
</a>
<ul class="dropdown-menu pull-right">
<li><a href="#">Settings</a></li>
<li><a href="#">Settings</a></li>
<li><a href="#">Settings</a></li>
<li class="divider"></li>
<li><a href="#">Log out</a></li>
</ul>
</div>
正しく視覚化されたメニュー
誤って視覚化されたメニュー
検査:「a」が全幅をとっていません
検査:リストアイテムは全幅を取っています