http://www.satzansatz.de/cssd/onhavinglayout.html
翻译:http://forest.blogbus.com/logs/2006/04/2340409.html
以下元素自动具备layout:
<html>, <body>
<table>, <tr>, <th>,
<td>
<img>
<hr>
<input>, <button>, <select>,
<textarea>, <fieldset>, <legend>
<iframe>, <embed>, <object>,
<applet>
<marquee>
以下属性会触发layout=true:
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'
writing-mode: tb-rl
在IE7 中 overflow 也会使得layout=true:
overflow: hidden|scroll|auto
overflow-x|-y:
hidden|scroll|auto
1. 浮动元素会被layout元素自动包含
。正常情况下,浮动元素会按照left和top的设置偏离原来文档流中的位置,父元素是不会调整高宽去包含该浮动元素的,但在IE中,layout元素会自动调整高和宽以包含浮动元素。
Firefox下:
IE下:
似乎设置一下overflow:auto就可以了……
2.
浮动元素旁边的元素。当一个块级元素紧跟在一个左浮动元素之后时,其中的文字内容应该沿着浮动元素的右边顺序排列并会滑到浮动元素下方。但是如果这个块级元素有
layout,那么这个元素就会表现为一个矩形,其中文字不会滑向浮动元素下方。与此类似,和浮动元素相邻的相对定位元素,它的位置偏移量应该参照的是父元素的补白(padding)边缘。注:相对定位一个元素时最好给予其
layout
3. M$专有的滤镜属性filter是只适用于 layout 元素的
4. hasLayout 会影响一个块级别链接的鼠标响应区域(可点击区域)。通常 hasLayout =
false 时只有文字覆盖区域才能响应。而 hasLayout = true 则整个块状区域都可响应。