タグ

hasLayoutに関するhashimoyaのブックマーク (2)

  • [CSS] IEのhasLayoutがtrueの時に垂直方向のmarginが相殺されない | バシャログ。

    CSS のコーディングをしていると、IE6 や IE7 で垂直方向の margin が相殺されない現象が頻発するので、ちゃんと原因を確かめました。 以下、サンプルです。 XHTML のコード <div> <p>テスト</p> </div> <div> <p>テスト</p> </div> CSS のコード div { width: 100px; margin: 0 0 50px; background-color: #000; } p { margin: 0 0 50px; background-color: #EEE; } 各ブラウザでの表示 「div」と「div で囲まれた p」それぞれの下方向に 50px の margin を適用すると、通常は同じ方向の margin が相殺されて下方向の空きは 50px となるはずですが、IE6 と IE7 では margin が相殺されず 100p

    [CSS] IEのhasLayoutがtrueの時に垂直方向のmarginが相殺されない | バシャログ。
    hashimoya
    hashimoya 2011/11/21
    たまによくハマる。わりと絶対的な解決方法はなくて、パーツによって切り分けてく感じ。width指定しない/display:inline指定/IE用八苦で
  • 【CSS - zoom:1 - ★★★】 - hasLayout問題を解決するzoom:1;の落とし穴 ― Like@Lunatic

    IEのヘンテコなCSS解釈の原因と言われるhasLayoutプロパティ。 どうやらこのhasLayoutプロパティの値がfalse(デフォルト値)の場合に、いろいろとまずいことが起こるようです。IEだけfloatした要素周辺のmarginやpaddingがおかしかったり、相対配置/絶対配置した要素がどこかに消えてしまったりする・・・という経験はcssレイアウトの際に誰もがぶつかる問題です。 また、hasLayoutがTrueとFalseの要素が混在している場合には、IE7のズーム機能を利用した際に、隣あった要素が重なってしまったりします。 この辺はコリスさんのIEでのCSSのバグを回避するhasLayoutに分かりやすい説明があります。 このhasLayoutの問題を解決するためにzoomプロパティが利用されることがあります。(zoomプロパティはIEの独自拡張であるため、これを使うこと自

    【CSS - zoom:1 - ★★★】 - hasLayout問題を解決するzoom:1;の落とし穴 ― Like@Lunatic
    hashimoya
    hashimoya 2010/04/01
    たまに見落とす。いかん。
  • 1