display: none; の使い方って
display: none;
ってどの程度まで利用していいんだろう。
HTML には手を加えず CSS のみで様々なデザインを実現してやろうという、一人 PRF みたいなことを画策していて、display: none;
を使えばいろいろできそうだと思っていた。例えば、記事タイトルや日付を非表示にしたり、あるページでは本文を隠してしまったりして、まるでテンプレートを変えたみたいに見せかけるとか。
内心わくわくしていたんだけど、冷静になってみるとかなり無茶だった。スタイルシートでコンテンツ部分まで非表示にするのはやりすぎだ。いくらなんでも元の HTML を無視しすぎている。ついでに、いわゆる SEO 的にも良くなさそう。ロボットが何をスパムと見なすかわからない。
で、それは諦めることにして、そもそも display: none;
ってレイアウトのために使っていいものなんだろうか、という悩みにぶつかったのだった。
CSS は HTML の体裁を設定するための言語だけど、ある部分をまるきり見えなくしてしまうのは「体裁の設定」に入るのだろうか? 入るとしたら、どの程度までなら許容範囲内なのか。display: none;
なる指定自体がよろしくないような気がしてきてしまう。
検索していたら興味深い記事を見つけた。
両記事とも構造と表現
について参考になる考察がされている(text-indent: -9999px;
が音声ブラウザのための指定だとは知りませんでした)。
screen 向け CSS でも print 向け CSS でも display プロパティを随所で使っているのだが、print 向けはまあよいとして、screen 向けで display プロパティを使用するのはどうだろうかと、少し考え込んでしまう。
さて、ここでなぜ「print 向けはまあよいと」されているのだろうか。ページ内のコンテンツの一環として表示されている、いわゆるナビゲーション要素を、印刷時には削除するという意味ではないかと思う。
そうか。印刷用スタイルシートを忘れていた。確かにナビゲーション要素を、印刷時には削除する
ために display: none;
を用いるのは理にかなっている。元々そういう使用法を想定した値なのかもしれない。screen メディアで、文書に書かれているものを消してしまうのは、やっぱりおかしいような。いよいよ単純に見た目のためだけに指定するのは憚られてくる。
それでも使うとしたら、デザインする上で都合の良くない部分をこっそり削ったり、普通の閲覧者には不要なもの(管理者メニューとか)を隠したりするためだろうか。でも、例えばこのサイトではナビゲーションやフッターの見出しを非表示にしている、というか、表示することは考えていなかったんだけど、見せるつもりが全くないなら初めから HTML 中に記述しない方がいいかもしれない(ちょっと本末転倒気味か)。
逆に言えば、見せてしまいさえすれば存在意義は満たされるので、今度はそういうスタイルを書こうと思う。まる。いっそ、display プロパティを一つも使わないのを目標にしてみようかな。面白そう。それよりもまず印刷用スタイルですか。
余談ですが、鳥さんの独り言というサイトは FC2ブログなんですね。かっこいいなあ。
- 2005-08-08 15:24
- テンプレート
- comments (0)
- trackback (0)
Post comment
Trackback
- Trackback URL
- http://nilu.blog13.fc2.com/tb.php/45-e54a01de
Comments