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的值也会变化