两个都是不大不小的问题,在这里记录一下。
Flash 的遮盖问题
Flash 在默认没有相应参数的情况下,会遮盖 HTML 层并不受 CSS 的 z-index 属性控制。在这里有个简单的方法,就是在 object 中加入
<param value="transparent" name="wmode" />
即可。如果使用了 embed ,务必将此属性也加入
wmode="transparent"
这样,就不会遮盖绝对定位的层了。不过此时 object 还是不受 CSS 的 z-index 控制,寻求解决方案中。
Explorer 6 下的 select 遮盖问题
这是个老的问题了,但是如果不小心的话还是出出现。问题是在 Explorer 6 下,某个绝对定位的层无法遮住 select 控件,而解决的办法就是使用 iframe 将其遮住,代码如下:
<!--[if lte IE 6.5]>
<div style="position:absolute;z-index:-1; top: 0; left: 0;">
<iframe
style="filter:alpha(opacity=0); width:210px; height: 110px;">
</iframe>
</div>
<![endif]-->
因为这仅仅是 Explorer 6 的问题,所以使用了条件注释,避免其他浏览器加入无谓的结构。
期间和 小马 讨论过是否将其写成脚本,回答是「基于效果、或者 BugFix 类的问题,出于效率的考虑,尽量不要使用脚本」。我同意他的观点,比如上述的代码对于其他非 Explorer 浏览器而言,仅仅是注释而已。
进一步的改进,可以使用脚本判断时候否是 Explorer 6 ,并动态加入 iframe 。排除效率的问题,这样操作更通用些。
最后,上述两个问题的 DEMO 页面 在这里 。
--EOF--
顺便提下, Yupoo 支持 Flash 图像输出了 ,正好在这里用上。不过,我更喜欢直接用原图,这样更通用些。
顶一下 当初为了这个我们幸苦好久
转贴 小马 同学的发言:
我补充我的说明:
如果只是处于表现层的考虑,那么能不使用脚本,就不要使用脚本。比如圆角。
如果涉及到了行为层的动作,本身就是脚本的工作,尽量使用脚本解决。比如上文所述的弹出层遭遇 ie6 bug。
[...]转载自:http://www.gracecode.com/archives/1745/[...]