1)水平メニューバーはUL LIを使用して作成され、各メニューの幅(LI)はマージンとパディングを使用して作成/固定されます。これにより、IEブラウザで互換性の問題が発生します(明らかに)。IF条件ステートメントを使用して修正することにより、ChromeとSafariは1pxで異なります。つまり、互換性の問題が増加し、ハックを使用して修正する必要があります。
2)これをすべて解決するために、各LIに幅を指定すると、互換性を修正しなくても、すべてのブラウザーでメニューバーが機能します。
私はハックを使うのがあまり好きではありませんが、時々小さな修正のためにそれらを使いました。ほとんどの場合、HTML開発者は最初のオプションを選択します。どちらのアプローチが優れているかを知る必要があります。