CSSのみのドロップダウンメニューを作りました。要件は、それぞれが垂直メニューをドロップダウンできる項目の水平バーを持つことでした。さらに、これらの項目は第 3 のメニューをドロップするのではなく、箇条書きのリストを表示するだけにする必要があります。私のhtmlには3つのネストがul
あり、メニューは最新のすべてのブラウザで完全に機能しています. 次のようになります。
ただし、リンクの後ろの暗いボックスが箇条書きの右から始まり、メニュー幅全体に広がっていないのが気に入らなかったので、少し遊んで、最終的にこの調整にたどり着きました:
#nav li ul li ul li a {
padding-left:1.8em;
margin-left:-1.8em;
}
箇条書きのメニュー項目は、私が望んでいたように見えます。
また、フォント サイズに対する being の性質上em
、フォント サイズとは無関係に機能します。大きなフォント サイズで示されているように、次のようになります。
これを Internet Explorer 8+9+10 (開発者プレビュー)、Firefox 3+7、最新の Chrome、Opera、および Safari でテストしたところ、魅力的に動作します。
ただし、正確に1.8emで機能する理由がわかりません。すべてのブラウザが箇条書き項目を正確にここまでインデントするのはなぜですか? このトピックについてインターネットを検索しましたが、役立つものは何も見つかりませんでした。これが将来のブラウザで動作することを確認できますか? それらの 1.8em は HTML 標準で指定されていますか?
ヒントを事前にありがとう!
編集:
DisgruntledGoatの回答: 1em/-1em または 20px/-20px を使用すると機能しません。このスタイルで:
#nav li ul li ul li a {
padding-left:20px;
margin-left:-20px;
}
さまざまなフォントサイズでこれを取得します(明らかにフォントサイズでスケーリングしません)。
同様に、1em/-1em もオフで、上の図の右側のように見えますが、フォント サイズに合わせてスケーリングされます。なんらかの理由で1.8emが魔法の距離のように見えます...