fc2ブログ

2005-08-08

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ブログなんですね。かっこいいなあ。

スポンサーサイト



Comments

Post comment

管理者にのみ表示する
  • タグは使用できません。
  • 「非公開」にチェックを入れると管理者以外には表示されなくなります。

Trackback

Trackback URL
http://nilu.blog13.fc2.com/tb.php/45-e54a01de