CSSスプライト -9999pxテキスト飛ばしを辞める
公開:2013年1月6日
投稿者:院長 佐藤
CSSスプライトを使用して トップページや,サイドのバナー画像を置換していますが、
最近までテキストを-9999pxで飛ばしていました。これで良いと そのままにしていましたが、別の方法を探していました。
Text-indent: -9999px; はやっぱり不自然ですね。
変更しましたのでその備忘録です。
今までの記述
HTML
[html]
<a href="../" id="sample01" class="sprite-サンプル">リンク先</a>
[/html]
CSS
[css]
#sample01 {
text-indent: -9999px;
display: block;
}
.sprite-サンプル { /*置き換える画像*/
background:url(http://url) no-repeat;
background-position: 0 -436px;
width: 150px;
height: 150px;
}
[/css]
今までは、これでも良かった?のだけれども、端末によっては、大きなボックス表示をしているために、ブラウザ上でのパフォーマンスが悪くなるという点があるとのこと。サーチエンジンに対してもスパム扱いされる恐れもありそう。
今まで大丈夫でしたから、今後も大丈夫では?という事もあると思いますが、早めに対処をしたいと思います。
そこで変えたのが以下になります。
CSS
[css]
#sample02 {
text-indent: 100%;
white-space: nowrap;
overflow: hidden;
display: block;
}
[/css]
参考にしたサイト (いつも参考にさせていただいております。)
[CSS]画像置換「-9999px」のパフォーマンスを改善した新しいテクニック | コリス
ADC OnAir 第5回 『レスポンシブ Web デザインを学ぼう!実装編』
ブロックを過剰に大きくしないので、レスポンスも良くなったように感じます。
しかし、やっぱり文字を隠しているので、スパム対策にはならないのかも。
CSSスプライトした画像を img要素で単純に表示してしまう方が良さそうですが、
時間があるとき始めないとちょっと難しそうです。