彻底弄清楚haslayout概念
2009-05-05 10:54:32 来源:WEB开发网要想更好的理解 css, 尤其是 IE 下对 css 的渲染,haslayout 是一个非常有必要彻底弄清除的概念。大多IE下的显示错误,就是源于 haslayout。
什么是 haslayout ?
haslayout 是Windows Internet Explorer渲染引擎的一个内部组成部分。在Internet Explorer中,一个元素要么自己对自身的内容进行计算大小和组织,要么依赖于父元素来计算尺寸和组织内容。为了调节这两个不同的概念,渲染引擎采用了 hasLayout 的属性,属性值可以为true或false。当一个元素的 hasLayout 属性值为true时,我们说这个元素有一个布局(layout)
当一个元素有一个布局时,它负责对自己和可能的子孙元素进行尺寸计算和定位。简单来说,这意味着这个元素需要花更多的代价来维护自身和里面的内容,而不是依赖于祖先元素来完成这些工作。因此,一些元素默认会有一个布局。当我们说一个元素“拥有layout”或“得到layout”,或者说一个元素“has layout” 的时候,我们的意思是指它的微软专有属性 hasLayout 被设为了 true 。一个“layout元素”可以是一个默认就拥有 layout 的元素或者是一个通过设置某些 CSS 属性得到 layout 的元素。如果某个HTML元素拥有 haslayout 属性,那么这个元素的 haslayout 的值一定只有 true,haslayout 为只读属性 一旦被触发,就不可逆转。通过 IE Developer Toolbar 可以查看 IE 下 HTML 元素是否拥有haslayout,在 IE Developer Toolbar 下,拥有 haslayout 的元素,通常显示为“haslayout = -1”。
负责组织自身内容的元素将默认有一个布局,主要包括以下元素(不完全列表):
* body and html
* table, tr, th, td
- ››彻底摆脱OPhone的主屏
- ››彻底更换系统默认字体及字体渲染
- ››彻底领悟JavaScript中的exec与match方法
- ››彻底理解 Symbian 活动对象
- ››彻底改善windows 7小工具的CPU 仪表盘的显示速度
- ››彻底去除暴风影音的stormliv.exe
- ››彻底弄清楚haslayout概念
- ››彻底解决DIV层被Flash动画遮盖问题
- ››彻底掌握IIS6.0功能及应用详解
- ››彻底删除system volume information文件夹
- ››彻底清除安装Windows Vista SP2后遗留的系统垃圾
- ››彻底搞定IE7频繁弹出“确实允许此网页访问剪贴板吗...
更多精彩
赞助商链接