在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
IE,这个令所有网站设计人员讨厌,但又不得不为它工作的浏览器。不论是6、7还是8,它们都有一个共同的渲染标准haslayout,所以haslayout 是一个非常有必要彻底弄清除的概念。大多 数IE下的显示错误,就是源于它。 什么是Layout呢? 这个属性可以被一些css强制激活。一些HTML标签默认具有haslayout。 下面这些标签默认拥有haslayout属性: XML/HTML Code复制内容到剪贴板
你可能就问:微软干嘛要设layout这个东西呢?当一个对象的layout被激活时,它以及它的子对象的定位和尺寸计算将独立进行,不受附近对象 的干扰。也就是说它拥有一个独立的布局(layout)。因此浏览器要花费更多的代价来处理拥有haslayout的对象。为了提高性能,微软增加了 layout这个IE私有的概念。 怎样激活layout? CSS Code复制内容到剪贴板
设置绝对定位可能会引发新的问题。 CSS Code复制内容到剪贴板
IE下的浮动也会产生一些莫名其妙的问题。 CSS Code复制内容到剪贴板
当一个内联元素需要haslayout属性时就需要用它,但是IE本身不支持inline-block的,只是表现得像标准里说的inline-block。 CSS Code复制内容到剪贴板
ie私有属性,不推荐用。 1.min-height: (任意值) 重置haslayout 1.width, height (设为 "auto") 把 mid-width, mid-height 设为它们的默认值"0"仍然会赋予 hasLayout,但是 IE 7 却可以接受一个不合法的属性"auto"来重置 hasLayout。 触发 hasLayout 清除浮动 CSS Code复制内容到剪贴板
或 CSS Code复制内容到剪贴板
或 CSS Code复制内容到剪贴板
'Layout' 是 IE 的专有概念,它决定了元素如何对其内容进行定位和尺寸计算,与其他元素的关系和相互作用,以及对应用还有使用者的影响。 'Layout' 可以被某些 CSS property(特性)不可逆的触发,而某些 HTML 元素本身就具有 layout 。 'Layout' 在 IE 中可以通过 hasLayout 属性来判断一个元素是否拥有 layout ,如 object.currentStyle.hasLayout 。 'Layout' 是 IE 浏览器渲染引擎的一个内部组成部分。在 IE 浏览器中,一个元素要么自己对自身的内容进行组织和计算大小, 要么依赖于包含块来计算尺寸和组织内容。为了协调这两种方式的矛盾,渲染引擎采用了 'hasLayout' 属性,属性值可以为 true 或 false。 当一个元素的 'hasLayout' 属性值为 true 时,我们说这个元素有一个布局(layout),或拥有布局。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论