hasLayoutとは

1321 ワード

(以下の内容はCSS Masteryの中訳本「CSS高級Web標準ソリューションに精通する」154ページ、人民郵便出版社、2007)
IEはLayout概念を用いて要素のサイズと位置を制御する.要素にLayoutがあれば、それ自体のサイズと位置があります.ない場合、その寸法と位置は、最も近いレイアウトを持つ祖先要素によって制御されます.
デフォルトでは、Layoutを持つ要素は次のとおりです.
  • <html>, <body>
  • <table>, <tr>, <th>, <td>
  • <img>
  • <hr>
  • <input>, <button>, <select>, <textarea>, <fieldset>, <legend>
  • <iframe>, <embed>, <object>, <applet>
  • <marquee>

  • (

    および

    のデフォルトではLayoutは使用されません.)
    以下のCSS属性を持つ要素にもレイアウトがあります.
  • position: absolute
  • float: left|right
  • display: inline-block
  • width: any value other than 'auto'
  • height: any value other than 'auto'
  • zoom:any value other than'normal'(IE専用属性)
  • writing-mode:tb-rl(IE専用属性)
  • overflow:hidden|scroll|auto(IE 7以降のみ有効)
  • overflow-x|-y:hidden|scroll|auto(IE 7以降のみ有効)
  • hasLayoutはIE特有の属性であり、CSS属性ではない.Javascript関数hasLayoutを使用して、要素がLayoutを持っているかどうかを確認できます.ある場合、この関数はtrueを返します.そうでなければfalseを返します.hasLayoutは読み取り専用属性なのでJavascriptでは設定できません.