CSSに詳しい方に質問があります。


最近、Webサイトを作っていて、見事にIE6のバグでつまづきました。ボックスに高さを指定してやることによって解決しましたが。

そういったバグの対策のためには、ホーリーハックというのが便利だと聞いたことがあったのを思い出し、調べてみましたが、なぜそういったheight: 1%;などでIE6向けの対策ができるのかがわかりません。(もちろん、MacIEも)

ホーリーハックについて、単に使い方を説明しているだけではなく、その背景やIEのバグ、どういったときに使えるのか、など、ホーリーハックについて詳しく解説しているサイトがあったら、教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/12/29 10:34:22
  • 終了:2007/01/05 10:35:02

回答(2件)

id:smoking186 No.1

186回答回数74ベストアンサー獲得回数62006/12/29 13:59:18

ポイント35pt

height: 1%;

構造のマークアップなしでフロートをクリアする方法で解説がされています.

IE6では, 高さを指定するとボックスサイズの算出時にフロートを除外せず, 内包する要素に合わせて外側のボックスを広げるという別のバグがあります.

ということは外側のボックスに高さを指定してやれば, IE6では外側のボックスは勝手に中のボックスの高さ以上の高さを持つことになります.

このIE6のバグについては, Internet Explorer (Windows) CSSバグリスト:幅や高さを指定した要素ではボックスサイズの算出時にフロートを除外しないをご参照ください.

蛇足:ホーリーハック (holly hack)

/* Hidden from Mac IE \*/
 div.notMacIE {background-color: red;}
/**/

みたいにMacIEのコメントに関するバグを利用したハックがホーリーハックです.

MacIEでは上記IE6でのバグが発生しないので, MacIEには読み込ませないようにしている訳です.

id:aratako0

おー、なるほど。上のサイトの内容は読んだことあるのですが、いかんせん日本語が難しく。。。MacIEにはそのバグがないので、読み込ませないというのはなるほどです。

もう少し情報を待ちます。あと、よく分からないのは、たまにブログなどで「とりあえずIE6向けのバグは上記のheight: 1%;で対応する」みたいな記述をちょくちょく見かけることです。これはどうなんでしょうか?

2006/12/29 14:27:05
id:hamster009 No.2

hamster009回答回数3431ベストアンサー獲得回数502006/12/31 03:18:08

ポイント35pt

数値指定が正確ではないので、パーセンテージ指定するということです。http://end

id:aratako0

よく意味が分からないです。数値指定は分かるし、パーセンテージで指定するのも分かるんです。

ということは、複合的にWin IEにはバグがあって、それらを一気に解消するためにハックを使うわけですよね。

じゃあ、その複合しているのは一体どういうバグなのかを知りたいのです。

2006/12/31 03:21:37

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません