hasLayout和filter滤镜的细节

filter:alpha(opacity=60); IE(<9)透明滤镜失效。

如果我们设置宽度后filter就会有效果,而这个没有设置宽度hasLayout 属性值是0

熟悉haslayout 的都知道,这个表示当前容器不是一个有形体

在IE中filter套用到容器上时,容器必需是「有形体」,意思就是,必需「必须明确知道套用范围」,这个在 IE 中称为 layout,同时 IE 支持 hasLayout 这个属性,但是 hasLayout 这个属性沒有 HTML 或css写法,也就是只能使用 JavaScript / JScript 來驱动,使这个属性变成启动或不启动。当 hasLayout 为 true 时就是-1时,filter 的效果才能产生效果。

虽然 hasLayout 并沒有 HTML 可以启动,但是某些 CSS 属性一旦被指定,hasLayout 自动调整为 true,这些 CSS 属性是:

属性名称 启动 hasLayout 的值 取消 hasLayout
display inline-block  
width / height 除了 auto 外任何值 auto
position absolute static
float left 或 right none
zoom 非0值 0

所以不难看出当我们设置宽度后 filter属性就会有效果

hasLayout的值也会变化

你可能感兴趣的:(filter)