首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

那些年,我们被耍过的bug——haslayout

一些HTML标签默认具有haslayout。 PS:一个对象的layout属性被激活,它的具体表现就是haslayout=true。...一个元素触发 hasLayout 会影响一个元素的尺寸和定位,这样会消耗更多的系统资源,因此 IE 设计者默认只为一部分的元素触发 hasLayout (即默认有部分元素会触发 hasLayout ,这与...hasLayout属性不能直接设定,你只能通过设定一些特定的css属性来触发并改变 hasLayout 状态。下面列出可以触发hasLayout的一些CSS属性值。 ...----------------------  zoom  启动hasLayout的值:有值  取消hasLayout的值:narmal或者空值  (zoom是微软IE专有属性,可以触发hasLayout...上面也有说道,hasLayout 与很多 IE 下的显示 bugs 都有关,实际上很多莫名奇妙的 bugs 都因 hasLayout 而起,因此只要适当的触发元素的 hasLayout ,很多 IE bugs

68010

hasLayout IE浏览器bug的来源

hasLayout是什么 hasLayout是IE特有的一个属性。很多的ie下的css bug都与其息息相关。...hasLayout属性不能直接设定,通过设定一些特定的css属性来触发并改变 hasLayout 状态。 元素hasLayout而导致的问题其实一般都很容易发现:往往是内容出现错位甚至完全不可见。...display 启动haslayout的值:inline-block 取消hasLayout的值:其他值 width/height 启动hasLayout的值:除了auto以外的值 取消hasLayout...的值:auto position 启动hasLayout的值:absolute 取消hasLayout的值:static float 启动hasLayout的值:left或right 取消hasLayout...的值:none zoom 启动hasLayout的值:有值 取消hasLayout的值:narmal或者空值 (zoom是微软IE专有属性,可以触发hasLayout但不会影响页面的显示效果。

82640
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CSS魔法堂:hasLayout原来是这样!

    前言 过去一直听说旧版本IE下很多诡异bug均由一个神秘角色引起的,那就是hasLayout。趁着最近突然发神经打算好好学习CSS,顺便解答多年来的疑惑。 hasLayout到底是何方神圣?...和产生新BFC的特性一样,hasLayout无法通过CSS属性直接设置,而是通过某些CSS属性间接开启这一特性。不同的是某些CSS属性是以不可逆方式间接开启hasLayout为true。...另外我们可以通过object.currentStyle.hasLayout属性来判断元素是否开启了hasLayout特性。...context; 1.2 生成 block formatting context 但是没有触发 hasLayout 的元素,通过设置 'zoom:1',使其触发 hasLayout。...使元素即没有触发 hasLayout,又没有创建 block formatting context。 总结 虽然我现在已经不用再适配IE5.5/6/7了,但理解hasLayout还是很有必要的。

    68760

    清除浮动的几种方法

    而其原因在于,overflow(非visible值) 可以触发 BFC(Block Formatting Context) 或者是 IE67中的 hasLayout,使之改变了排版的方式。...那问题又来了,什么是BFC,什么是 hasLayout? 关于 hasLayout 请戳这里,解释的蛮清晰的。...的css属性均可以清除浮动,而 overflow 被广泛使用的原因,我想应该在于,在触发 BFC 或者 hasLayout 的同时,对元素自身的定位或者表现影响有限。...对于IE6,设置 overflow 并不能触发 hasLayout, (IE7可以!)因此需要设置其他属性,如zoom:1 width: 100% 等。...总结 从各种书籍和文章看来,清除浮动主要是从以下两种思路入手: 利用 clear 属性 触发BFC 或者 hasLayout 以上是对最近看到的有关清除浮动的资料,所做的思考总结。

    75120

    CSS 清理浮动 clear属性

    } 需要注意的是,由于IE7及以下的版本不支持 :after 伪元素,因此还需要为 .clearfix 设置width、或 height、或 zoom 等一系列属性,来触发布局(即,使IE私有属性 hasLayout...说明:BFC 与 hasLayout 从表现上来说,hasLayout 跟 BFC 的功能很相似,只是 hasLayout 自身存在很多问题,导致了 IE6-7 中的一系列 bug。...既然 hasLayout 有着跟 BFC 相似的功能,而 IE7 及以下的版本不支持 BFC。...因此,为了避免不同浏览器下的表现差异,在实际开发中,需要创建 BFC 的元素,同时也要触发 hasLayout。 事实上,在实际开发中,很多莫名其妙的问题,都是由此产生的。...当然同样地,如果一个元素没有创建 BFC,也要尽量保证它没有触发 hasLayout

    18910
    领券