XREA <FreeWebHosting>
広告

CSS-FAQVol.2

良くある質問とその回答

IEでli+liが効かない

IEはCSS2で拡張されたセレクタに対応していない。仕様。

文字のサイズをpxやptで指定すると嫌われるのは何故?

例えば、12ptと指定したとする。目の悪い人は、小さすぎて読めない。読めないのだから嫌われて当たり前。目の悪い人のために今度は24ptとした。画面の小さい人には大きすぎて困る。大きい数字にしても小さい数字にしても、見る者がサイズを変更できないなんて嫌だ。デザイン重視ならある程度は仕方ないから文句は言わないけど、「非固定」のほうが便利だ。

Webと紙メディアは違うんだよ、その辺理解してほしい人が最近多い。

ユーザ側の対策:文字サイズ固定

文字サイズを固定している迷惑なサイトは、本人がカッコいいとでも思っているのか、よくある。しかし、これに立ち向かう方法は無いのか?

Opera

Operaなら、設定で最小フォントサイズ(px)を指定できる。また、画像も縮小・拡大できるので、非常に便利。

WinIE

WinIEでは、立ち向かえない…気もしますが、実はできます。「ツール→インターネットオプション→(全般タブ)→ユーザー補助→Webページで指定されたフォントサイズを使用しない」 とやってほしい。わざとやっているのか、非常に使いずらい設定画面。MozやOperaを見習ってほしい。筆者もこの方法を知らなかった。

音を鳴らしたい

対応しているUAは今のところ少ない。cue-before:url('hoge.mp3');でクリックする前にhoge.mp3を鳴らす。cue-after:url('fuga.mp3');でクリックした後。

div要素の中にdiv要素って文法的にいいんですか

OK.ブロック要素の中に(特定の要素以外では)ブロックを入れても問題ない。ただレイアウトのためだけの意味のないdivはお勧めしない。

画面のど真ん中に(文字や画像を)持っていく方法

左右のmarginpaddingautoにした時の効果でなく、本当に画面の中央という意味ですか?垂直方向でも真ん中に持ってくるという。positionを指定するとかしか方法は無いと思う。CSSは縦方向の指定が苦手。

カーソルを変える方法を聞いたら怒られました。

カーソルをかえるのは不便なんでやめてください。個人の自由だからとやかく言いたくないけれど、絶対に「クール」ではない。アクセシビリティの観点からも望ましくない。これ以上は、他で聞いてください。

CSSの振り分けを使うと何か良いことが?

NS4.7xユーザからクレームがあるなら、メリットがある。「NS4.7xユーザからクレームが来なくなる」。UAのバグによって落ちることも減る。PCユーザの中にはUAのバージョンアップ自体をサボっている人もいるので、CSS2位に対応したUAがそこそこ増えるまでは使ったほうがいいかも。実際、某M$の穴にパッチを当ててない人とか結構いたし。危なすぎ。

CSSの振り分けの方法は?

CSSのバグ辞典を見て研究してください。JavaScriptを用いずに@importを使用するとか、media="screen,tv"のようにメディアにスクリーン以外を指定するとか。未確認情報ですが、<!--[if IE 6]>IE6<![endif]-->とすることでIEの振り分けが可能だそうです。でも、コメント<!-- Comment -->の中に<>!があるので心配。

CGIをCSSとして使う方法もあります。CGIでブラウザを判別して、内容を変えるだけなのでHTMLソースをかえる必要が無いのが利点です。

均等割付けみたいなことって

どうよ?text-align:justify;text-justify:distribute-all-lines;

本は買ったほうが良いですか

買わなくたって仕様書の邦訳でもリンクしとけばいいさ。原文の方を見たところまとめて読めるようにダウンロードできるようにしてあったのでそれを利用するとか。仕様書なら無料だし、本には書いてないことも書いてあったり。

ただ、仕様書なんて読んでられっか!!という人は買ってもいいかも。そのときは「糞本」と呼ばれる「嘘」を書いた本は選ばないで。本買うならUA別の対応表みたいなのがついてる奴がお勧め。

段組は対応してますか

段組は今のところ厳しいのでfloatを使うしかないと。

要素全体じゃなくて個別に指定とか

ID,Class使う。

CSSを正しく記述したのにおかしいです、

CSS-Validerなんかを通して「正しい」か判断してほしい。

li要素やp要素など、省略可能の閉じタグ</p>も適切にCSSを適用するために、できるだけ書きましょう。

part 2