2012年4月25日星期三

haslayout简介


那我们来看一下什么haslayout
haslayoutIE渲染引擎的一个内部组成部分。在IE中,一个元素计算大小和组织内容,要么对自身的内容进行计算大小和组织内 容,要么依赖于父元素来计算尺寸和组织内容。为了调节这两个不同的概念,渲染引擎采用了haslayout的属性,属性值可以为truefalse。当 一个元素的 haslayout属性值为true时,我们说这个元素有一个布局(layout)。
           ie下有一些标签是本身就拥有haslyout的,大家以后用到的时候要注意一下。例如:
               具有haslyoutHTML标签 有:<table><td><body><img><hr><input><select><textarea><button><iframe><embed><object> <applet><marquee>< html>< tr>< th><fieldset>< frameset><frame> 等(未完全统计)。

           那是我们怎么才可以激活haslayout
1.    通过设置CSS能够获得的haslayout的属性有:display: inline-block;height: (任何值除了auto);float: (leftright);position: absolute; width: (任何值除了auto);writing-mode: tb-rl;zoom: (normal外任意值); min-height: (任意值); max-height: (none外任意值);min-width: (任意值);max-width: (none外任意值);overflow: (visible外任意值);overflow-x: (visible外任意值);overflow-y: (visible外任意值); position: fixed;(未完全统计)
2.    对于内联元素(默认即为内联的元素,如span,或display:inline; 的元素)widthheight只在IE5.x下和IE6或更新版本的quirks模式下触发hasLayout。而对于IE6,如果浏览器运行于标 准兼容模式(具有Doctype的模式)下,内联元素会忽略widthheight属性,所以设置widthheight不能在此种情况下令该元素具 有layout
3.    zoom总是可以触发hasLayout,但是在IE5.0中不支持。
4.    这个元素的高度为1%(height:1%;)。但是在这个元素的overflow属性被设置为visible时,就失效了。
5.    IE7来说,最好的方法是设置元素的最小高度为0px(min-height0px;)

如果大家想进一步了解haslayout的问题,可以参加一下网站:

没有评论:

发表评论