IE5.xでのボックス表示を修正する
IE5.x(Netscape4.xも)やIE6の後方互換モードではCSSの width, padding, border の解釈にバグがあるというのは巷で有名みたいで、ブログでCSSに関わりだした私は
の記事で初めてこの事実を知りました。それ以来随分と気になってましたが、関連の話題をエントリーします。
以下、Ie5.xでボックス表示を変更させる方法を紹介します。できる!CSSさんのWin IE5xだけ別のCSS 2経由で
と呼ばれるものを発見。具体的な方法は下記の記述を加えて外部スタイルシートを読み込むというものです。中に記述されtている hogehoge.css はIE5.x系しか読み込まないので、ここでIE5.x用の記述をして上書きをするという仕組みです。
@media tty {
i{content:"\";/*" "*/}} @import 'hogehoge.css'; /*";}
}/* */
コードの意味はともかく、上記サイトのサンプルを見てもどこにどう書けばよく分からなかったのですが、下のようにHTMLのhead部分に記述することでOKとなりました(上記サイトのページソースがこのようになっていました)。
<link rel="stylesheet" href="styles-site.css" type="text/css" title="Default" />
:
<style type="text/css"/>/*<![CDATA[*/
@media tty {
i{content:"\";/*" "*/}} @import 'hogehoge.css'; /*";}
}/* */
/*]]>*/</style/>
このように記述することで、最初に link タグの外部CSS(styles-site.css)を読み込み、その後でIE5.x用のスタイルシート(hogehoge.css)が読み込まれます。全体をCDATAセクションで括っているのはおそらく xml として Valid にするための対処と推測されます(間違ってたらお許しを)。
この設定を追加したところ、画像のようにIE5でも正常に表示されるようになりました。 |
追記
このサンプルページでIE5.x用に用意した外部スタイルシートの内容は、
/* 右カラム */
#links-right{
float: left;
color: #ffffff;
width : 185px ;
padding-top : 15px;
padding-left : 15px;
padding-right : 15px;
}
/* 左カラム */
#links-left{
float: left;
color: #ffffff;
width : 185px ;
padding-top : 15px;
padding-left : 15px;
padding-right : 15px;
}
としています。変更したのは width で、元々 155px だったものを、左右 padding 分の 30px を足して 185px にしています。width 以外は元スタイルシートの設定と重複しているので不要かも知れません。
- YouTube動画にキャプションをつけてテキストを回り込ませる方法
- 画像を下揃えにしてテキストを回り込ませる方法
- style要素にCSSの擬似要素は記述可能か?
- position:relativeを設定すると他の要素がずれる場合の対処
- CSSでタブ切り替えする方法
- :target擬似クラスのまとめ
- CSSでヘッダを固定したスクロールテーブルを作る方法
- レスポンシブウェブデザインで画像を縮小する方法
- disabledなボタンのhoverのスタイルを無効にする方法
- HTML要素を別の要素を基点にしてCSSで絶対配置する方法
- :not擬似クラスでCSS3のサポートをチェックする方法
- :checked擬似クラスでチェックボックスに連動して要素を表示させる方法
- ol要素の入れ子で親の番号を子に割り当てる方法
- チェックボックスやラジオボタンを大きくする方法
- CSSで中央に配置する方法
≫ Win Ie5x対策 幅を指定したら余白は0に from できる!CSSを使いこなす weBlog
たまたま訪れたサイトで、自分のサイトが紹介されているというのも、なんか不思議な感じだ。 IE5.xでのボックス表示を修正する 上記サイト「小粋空間」は、Mova... [続きを読む]
トラバありがとうございます。
こんな古い記事の事を覚えててもらえたとはちとびっくりでした。
ちなみに私も各ブラウザによる見え方の違いは気になりつつもめんどくさくて全然確認してません(苦笑)。
だいたいのブラウザで大丈夫らしいという噂を聞いているので、それを鵜呑みにしている状態です。
解釈が各ブラウザで違うって、本当に勘弁して欲しいですよね。
ブラウザによって違うのは、本当に勘弁ですよねぇ、、。
私の場合、変形3カラムなので、IE5以下無視です(爆死。
時間あったら修正してみますかなぁ、、。
>もそさん
こんばんは。
いえいえ、価値のある記事は投稿日は問題でありません(笑)。
たしかもそさんのサイトも拝見させて頂きましたが正常に表示されていた記憶があります(間違ってたらすいません)。
>みよたんさん
こんばんはー。
コメントどうもです。
本当はMacIEの表示がどうなっているかを見てみたいんですけどね。
とりあえずWinIEで。
yujiroさんすみません、もうこのハックは私、つかってないんですぅぅぅ。。。
いえ、この方法が間違ってるわけではないんですが、まっとうなCSSで回避できる方法があるなら、そっちのほうがいいかと思って。。。もっと早くいえって?ホントに申し訳ございません。。。
ところでこのサイト、MacのIE5.2とSafaliで見ましたが、ええ、「一応」ちゃんと見れますよ。「厳密」なことをいうと多少ズレはありますが。
>y-iwebさん
はじめまして。
トラックバック&コメントありがとうございました。
ちなみにこの記事は実験レベルなので、どうぞお気遣いなく。
誤解させてしまったようで恐縮です。
あとMacIE・Safariのご報告ありがとうございます。
自分でも見てみたいのでそのうち Mac mini 買うかも知れません。(笑)
width と padding/border の分離は確かにその通りで、こちらは裏で実験中です。
ということで、またちょくちょく参考にさせていただきます。