このtext-indent: -9999px
方法にはいくつかの欠点があります。主なものは次のとおりです。
- IE6 および IE7 では、インライン ブロック要素では機能しません。
- 第1世代 iPad では、この手法を使用するとパフォーマンスの問題が発生することが証明されており、ページのレンダリングがかなり遅くなります。
- 表示されなくても、どのデバイスのブラウザでも、画面からはみ出す巨大な div (9999 ピクセル以上) を描画する必要があります。これは、ページの読み込み時間が長くなり、より多くのメモリ リソースが必要になるため、パフォーマンスに悪影響を及ぼします。
HTML5 Boilerplateの.ir
手法は、パフォーマンスと信頼性がはるかに高いことが証明されています。あなたは正しいことをしています。
そうは言っても、コードで何を達成しようとしているのか、100% 確信があるわけではありません。このフィドルでhtmlを少し再構築しました。
ご覧のとおり、要素が正確にどこにあり、どのくらいのスペースを占めるかを理解するために、赤い枠を付けました。<li>
すべての画像/テキストは、次のように意味的にロジック (1 つのリンク/1 つのリスト項目) である独自のものになりました。
<ul>
<li>facebook<li>
<li>twitter</li>
<li>example page</li>
<ul>
float:left
コンテナ自体ではなく、その中の要素をフロートさせる必要があるため、ナビゲーションからも削除しました。これで問題が少し解決し、目的の場所にたどり着くのに役立つことを願っています. 改善が必要な場合、またはあなたが達成しようとしていることを誤解している場合は、この回答を編集する準備ができています。