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

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但不会影响页面的显示效果。

83040

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还是很有必要的。

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

    那些年,我们被耍过的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

    68610

    清除浮动的几种方法

    而其原因在于,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 以上是对最近看到的有关清除浮动的资料,所做的思考总结。

    75920

    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 。

    21910
    领券