详细的解决IE浏览器的haslayout特性及相关兼容性问题的解决
什么是布局
布局是IE的私有属性,而不是W3C标准,它确定对象(如标签div、李等)在内容中显示的位置及其与周围对象的关系,以及如何响应程序或用户所生成的事件。
这个属性可以通过一些CSS执行。一些HTML标签有haslayout默认。
PS:一个对象的布局属性被激活,其具体表现是haslayout =我们可以使用IE Developer Toolbar工具看到属性激活的对象haslayout = 1 。
下面的标签有haslayout属性默认:
xml代码将内容复制到剪贴板。
,
,,
,,,
,,
你可能会问:为什么微软要设置布局当一个对象的布局被激活,其子对象的位置和大小的计算将独立进行,不受周围物体的干扰。也就是说,它有一个独立的布局(layout)。因此,浏览器需要花费更多的成本来处理,haslayout对象。为了提高性能,微软增加了布局即私人的概念。
如何激活布局
下面列出的CSS属性可以激活对象的布局:
CSS代码将内容复制到剪贴板。
位置:绝对的
设置绝对定位可能引发新问题。
CSS代码将内容复制到剪贴板。
浮:左|错误
IE下面的浮动也产生了一些莫名其妙的问题。
CSS代码将内容复制到剪贴板。
显示:内联块
当内联元素需要haslayout属性,它需要使用它,但是IE本身不支持内联块,但它的行为就像在标准的内联块。
对1.width任意值:except'auto
优先使用该财产。
对2.height任意值:except'auto
IE6和更早的版本是很常见的,这就是所谓的Holly hack(Holly Hack),即元素的高度是1%(高度:1%;)。请注意,但是,这种方法失败时,该元素的溢出属性设置为可见。
对3.zoom任意值:except'normal
另一个IE私有属性,不兼容的标准。变焦:1可以在测试的情况下使用或者不在追求标准,效果不错。
CSS代码将内容复制到剪贴板。
写入模式:TB
ie私人财产,不推荐。
IE7也有一些额外的属性:
1.min-height:(任意值)
2.max-height:(除了没有任意值)
3.min-width:(任意值)
4.max-width:(除了没有任意值)
5.overflow:(除了可见的任意值)
6.overflow-x:(除了可见的任意值)
7.overflow-y:(除了可见的任意值)
8.position:固定
复位haslayout
当没有其他属性激活布局,使用下面的CSS重置haslayout财产:
1.width,高度(设置为自动)
2.max-width,最大高度(设置为无)(IE 7)
3.position(设置为静态)
4.float(设置为无)
5.overflow(设置为可见)(IE 7)
6.zoom(设置为正常)
7.writing-mode(从结核病RL lr-t )
显示的属性是不同的:当haslayout属性与内联块激活
设置中的宽度,中间高度为默认值0仍会给haslayout,但是IE 7能够接受非法属性自动复位haslayout。
触发haslayout去除浮
Sample:
CSS代码将内容复制到剪贴板。
haslayout浮法:{宽度:1px }
或
CSS代码将内容复制到剪贴板。
。haslayout浮法:{身高:1px }
或
CSS代码将内容复制到剪贴板。
。haslayout浮法:{变焦:1 }
layout'is专属概念,即它决定元素的位置和大小,它们的内容,与其他因素相互作用和影响,与用户交互的应用程序。
layout'can被一些CSS属性触发(特征)不可逆的,和一些HTML元素本身的布局。
layout'can确定如果一个元素的布局,如object.currentstyle.haslayout,通过在IE.的haslayout属性
layout'is的IE浏览器的渲染引擎内部组件。在伊江的浏览器,元素或组织自行计算自己的内容,或依赖于块的大小来计算和组织内容。为了协调这两种方式之间的矛盾,渲染引擎使用the'haslayout'attribute,且属性值可真或假。当the'haslayout'attribute一元是真的,我们说的元素有一个布局(布局),或有一个布局。