text-indent:-9999pxで画像置換はもう古い?パフォーマンス向上させるインデント方法

スポンサードリンク

CSSで画像置換するに際し、インデントに負の値「-9999px」を設定する方法は、今ではイディオムとなっていることは常識なのだろうと思います。デバイスフォントを画像に置換する場合に、下記のようなCSSを記述した経験があるのではないでしょうか?

h1 {
  text-indent: -9999px;
  background: url(IMAGE PATH) no-repeat left top;
}

text-indentは、テキストに指定してインデント幅を付けます。負の値をあたえれば一行目が左へインデントされます。おおよそ直感的な動作なことから永く、この記述が採られてきたのだと思います。

ところが、欠点もあります。9999pxもの領域を描画してしまっている点です。パフォーマンスへの影響を考えると無視はできません。これの改修措置として以下のように記述する方法があります。

h1 {
  overflow: hidden;
  text-indent: 100%;
  white-space: nowrap;
  background: url(IMAGE PATH) no-repeat left top;
}