CSSで文字テキストを非表示にする(隠す)方法|ホームページ更新代行サービスブログ
今回はスマホサイト作成で作業を続けていく中で見つけた「小ワザ」をご紹介します。
合法的に(?)CSSでテキストを非表示にしたい
タイトルロゴ画像を表示して、附随するテキストは隠したい、そんな時。
これまでは、text-indent:-9999pxでテキストを飛ばして画像に置換する方法が多く使われてきました。
しかし、それでは、9999px分の領域を使う分パフォーマンスも悪くなってしまい、更にはSEOスパムだと思われてしまう可能性があることから、最近は好まれなくなってきました。
参考サイト:text-indent:-9999pxでテキスト飛ばさなくてもテキスト非表示にして画像に置換できる方法 | delaymania
それすら、今回の制作を通して知ったのですが……
『ロゴのテキストを残しつつ画像を表示させるには〜?』と悩んでいた時、岡部さんが、『このクラス使えば〜?』↓ と。
.clearText {
text-indent:100%;
white-space:nowrap;
overflow:hidden;
}
HTMLはこう。
<h1 class="clearText">logo</h1>
これで“logo”は表示されなくなります。
ちなみに、初級者の松本は、しっかり使えるプロパティ数が少ないため、それぞれに解説を入れますと……(自分のため)
text-indent | 一行目のインデント幅を指定する |
white-space | ソース中のスペース・タブ・改行の表示の仕方を指定する |
overflow | はみ出た内容の表示方法を指定する |
参考サイト:text-indent-スタイルシートリファレンス
です。
非表示になるその理由は、text-indentを100%とすると、インデント量はその要素の幅分となります。
しかしそれだけだと、テキストが改行して要素の中に残ってしまうので、white-space: nowrap;で改行を禁止して完全にはみ出させます。
overflow: hidden;ではみ出た部分を非表示にします。
参考サイト:CSSスプライトについてあれこれ。
こうやって、何事も経験しないとなかなか知識はつかないものです。
コーディングでつまづいたとき、大抵の問題はググれば解決できますが、その時に、なぜそういう挙動になるのかを合わせて調べると、後々応用が利くようになります。
理屈で理解できるようになるまで、深追いする癖をつけましょう。
オカベ
松本
最新記事 by 松本 (全て見る)
- 企業SNSアカウント Facebookとtwitterの使い分けはどうする? - 2016.12.10
- ブログのネタ探し3つのポイント|読まれるブログの書き方 -初心者編- vol.1 - 2016.09.26
- 国内開催のフェス・夏祭り・パブリックビューイング情報を網羅した日本初の総合フェス情報サイト「FEStivaly-フェスティバリー」、7月30日(土)プレオープン! - 2016.07.30