IE9 をチェックインしましたが、期待どおりのラッピングはありません。
いくつかの掘り下げから、これは Chrome 21 のバグだと思います。これは修正されたようですが、Chrome 24 でも同様の問題が発生しています。
browsershots.orgでサイトを確認したところ、Chrome 20.0.1132.57 Chrome 20.0.1132.57 http://api.browsershots.org/png/original/fa/fac627c3240bca39ef441ef4a5379a41.pngと Chrome 21.0.1180.89 Chrome 21.0の間で破損しているようです。.1180.89 http://api.browsershots.org/png/original/25/256df60f8f44dfa2fda3b7270094aa96.png
Chrome 21 にはかなりの数の(フォント) レンダリングの問題があるようです。たとえば、リリース ブログの投稿で、関連する WebKit バグFloat imprecision が見つかりました。サブピクセル レイアウトを使用した LineLayout で正しくラッピングされていないことがわかりましたが、これはChrome 22 で修正されたようです。不正なラッピングを報告するバグはまだ報告されており、その最後のバグのjsFiddle の例の場合、IE9 ではなく Chrome 24 でまだ壊れています。
WebKit のバグで 1 つの部分が際立っていました。
事実上、値がほぼ 1 ずれる可能性があることを意味します。
私はこれを「幅がほぼ 1 ピクセルずれている可能性がある」と解釈しましたが、実際にUpアンカー タグの幅を計算さwidth:31px
れたものからハードコーディングされたものに変更width:32px
すると、そのメニュー項目の問題が修正されます。ただし、これは一般的な修正ではないため、バグの原因となっている要素、つまりfloatプロパティを削除することをお勧めします。
.left
クラスを次から次へ変更{ float:left }
:
.left {
display: inline-block;
vertical-align: top;
}
問題を修正するようです。ただし、これは IE 6 または 7 の訪問者に対して「そのまま」機能しません ( http://caniuse.com/#search=inline-blockを参照)。これらの古いブラウザーでサイトを同じように動作させる必要がある場合、これを回避する方法があります - How to fix display:inline-block on IE6?
最後に、このアプローチが受け入れられる場合は、CSS.left
ルールの名前を、たとえばプロパティが適用される場所をより代表するものに変更します.nav-icon
:-)