现代网页设计中,越来越多的Flash被嵌入到HTML页面中。
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase=""http://download.Macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="300" height="300">
<param name="movie" value="flash.swf" />
<param name="quality" value="high" />
<embed src="flash.swf" quality="high" pluginspage="http://www.Macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="300" height="300">
</embed>
</object>
这是一段标准的Flash嵌入代码,目前在任何浏览器上都表示正常。但是,这样的网页进行W3C的XHTML校验时,会提示一些有关Flash的错误信息。校验器提示embed没有src属性,事实上确实没有这个属性。对于W3C来说,embed甚至不是一个合法的标签。W3C推荐使用object标签来嵌入媒体对象。
<object type="application/x-shockwave-flash" data="flash.swf" width="300" height="300">
<param name="movie" value="flash.swf" />
</object>
这样的代码虽然能在Mozilla系列浏览器中正确实现,但是在IE浏览器中却不能正常显示(因为IE对Web标准支持的并不完善)。很多Web标准的设计师尝试使用JS脚本来嵌入Flash,来躲避校验工具的检查,但这并不是真正的实现Web标准。
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase=""http://download.Macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="300" height="300">
<param name="movie" value="flash.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#FFFFFF" />
<!--[if !IE]><-->
<object data="flash.swf" width="300" height="300" type="application/x-shockwave-flash">
<param name="quality" value="high" />
<param name="bgcolor" value="#FFFFFF" />
<param name="pluginurl" value="http://www.Macromedia.com/go/getflashplayer" />
FAIL (the brower should render some flash content, not this)
</object>
<!--><![endif]-->
</object>
这段代码使得Flash的嵌入符合Web标准。这里使用了“IE条件注释”。
条件注释是IE特有的功能,主要针对XHTML。
<!--[if IE]>此内容只有IE可见<![endif]-->
<!--[if IE 6.0]>此内容只有IE6.0可见<![endif]-->
<!--[if IE 7.0]>此内容只有IE7.0可见<![endif]-->
条件注释能够被IE判断被IE判断是什么版本的浏览器,并在符合条件的情况下显示其中的内容。从IE5.0到IE7.0,都支持条件注释功能,而且版本号可以精确到小数点后面4位数。
除了标准方式外,条件注释还支持感叹号非操作。
<!--[if !IE 5.0]>此内容除了IE5.0之外都可见<![endif]-->
条件注释还支持前缀。
<!--[if gt IE 5.0]>此内容IE5.0以上版本都可见<![endif]-->
gt表示greater than,指当前条件的版本以上的版本,不包含当前版本。
lt表示less than,指当前条件的版本以下的版本,不包含当前版本。
gte表示greater than or equal,指当前条件的版本以上的版本,并包含当前版本。
lte表示less than or equal,指当前条件的版本以下的版本,并包含当前版本。
posted @ 2008-05-04 17:14
巴别塔工人 阅读(43)
评论(0) 编辑 收藏 所属分类:
Web开发 、
HTML