アンダースコアハック
ホームページを作る時って、僕の場合何もしていない時間が多かったりします。
デザイン的なモノもあるのですが、問題はそこではないんですよ。
当初はかなり行き当たりバッタリで作っていたのですが、最近ではちゃんと
fireworksでレイアウトを作って、そこからイメージを書き出してみたりなど
割とちゃんとするようになりました。(まだまだでございますけどなぁ・・・)
で、何に時間が裂かれるのかというと、タグです。HTMLを打ち込んでいる
と、途中でCSSを触りたくなる衝動に駆られることが多々あり、あっちに
いってはこっちに行き、集中力が散漫になってしまうんですよね。
ただ、今回はちゃんとガマンして先にマークアップを終わらせたので、これは
問題外。主題はやはりブラウザによる見栄えの違いです。
ヘタすれば一日中悩んでしまうこともあって、サラリーマンの僕にとっては
死活問題です。なので、今回は最近学んだアンダースコアハックというもの
を使ってみることにしました。
常々から言われているように、IEにはバグが多くあります。例えば、マージン。
例えばCSSで margin-left:10px; と書いてもIEではそれより多くマージンを
取ります。しかし、firefoxではちゃんと10px分取るので、ここで誤差が生じる
というわけです。(悩みの種がまた一つ花咲くというわけですわいな。)
ここで使うのがアンダースコア(いわゆる下線「_」です)。通常CSSでは
margin-left:15px;
という感じで、ちゃんとルール通りに書かないと、反映されないのは周知の通り
ですが、そのプロパティの前にアンダースコアを入れると、なぜかIEはこれを優先
して読み込みます。(他のブラウザは読みません)
というわけで、IEバグの帳尻を合わせるには以下のようなプロパティになります。
margin-left:15px; (他のブラウザ用プロパティ)
_margin-left:15px; (IE専用のプロパティ)
もちろんマージン以外のプロパティにも使えますので、大変オススメの方法です。
まぁ・・・あんまり多用はしたくないので、ここぞという時にしか使いませんが、
悩むぐらいなら応急処置的に使ってもOKかなと僕は思います。
・・・しかし、IE7ではどうなっちゃうんでしょうね。中途半端に改良されていない事
を祈るばかりです。(ガンバルな、マイクロソフト。)
|
前 : 素人っぽさを消すには
|