ie6 大环境下暂时不要考虑w3c标准

所属分类: 网页制作 / CSS 阅读数: 691
收藏 0 赞 0 分享
这是flash传统的嵌入方法:

复制代码
代码如下:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="32" height="32">
<param name="movie" value="test.swf" />
<param name="quality" value="high" />
<embed src="test.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="32" height="32"></embed>
</object>

使用 object 和 embed 标签来嵌入,细心的会发现,object 的很多参数和 embed 里面的很多属性是重复的。
有的浏览器支持 object ,有的支持 embed ,这也是为什么要修改 flash 的参数时两个地方都要改的原因。这种方法是 macromedia 一直以来的官方方法,最大限度的保证了 flash 的功能,没有兼容性问题。
但是自从有了w3c标准,和一些极力要求通过该标准的客户,事情复杂了:
embed被认为是非法的
embed 标签是 netscape 的私有标签,虽然 embed 标签应用广泛存在,但是从html3.2,html4.0到xhtml1.0,w3c都没有收录这个标签。使用embed 标签的页面将不能通过w3c校验。
其实他们这样考虑也是正确的,大部分西方国家的用户,正版vista系统基本上做到了普及,他们大多使用ie7.0/ie8.0等主流浏览器,使用这种简介的标签可以节省好几行代码:

<object type="application/x-shockwave-flash" data="test.swf" width="200" height="100"> <parm name="movie" value="test.swf /> </object>

但是在盗版泛滥的中国,多数用户仍然在使用windows xp系统上自带的ie6浏览器,而它是不支持object标签的,只能使用变通的方式来解决。
目前的临时办法
既要符合标准,又想在所有浏览器正确显示flash应该怎么做?我们可以添加一段冗长的javascript来隐藏embed标签:

复制代码
代码如下:

function getflashobject(flashsrc, objwidth, objheight, etcparam) {
var tag = "";
var baseflashdir="";
flashsrc = baseflashdir + flashsrc;
if ( etcparam != "" || etcparam != null ) {
if ( etcparam.substr(0, 1) == "?" )
flashsrc += etcparam;
else
flashsrc += "?" + etcparam;
}
tag += "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" ";
tag += "codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0\" ";
tag += "width=\"" + objwidth + "\" height=\"" + objheight + "\">";
tag += "<param name=\"movie\" value=\"" + flashsrc + "\" />";
tag += "<param name=\"quality\" value=\"high\" />";
tag += "<param name=\"wmode\" value=\"transparent\" />";
tag += "<embed src=\"" + flashsrc + "\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" ";
tag += "type=\"application/x-shockwave-flash\" width=\"" + objwidth + "\" height=\"" + objheight + "\" ";
tag += "wmode=\"transparent\"></embed>";
tag += "</object>";
document.write(tag);
}

不只如此,还需要在页面中添加若干调用该js的参数

复制代码
代码如下:

<script language="javascript" type="text/javascript">getflashobject('images/test.swf', '100%', '100%', '')</script>

那新的问题又出现了,如果用户禁用了javascript怎么办?
难道要先写出更多的代码,判断用户使用的是什么浏览器,然后根据浏览器再输出合适的代码?我靠,多影响页面执行效率啊,为了一个w3c标准,多那么多行代码,让每一个访问自己网站的用户多等待1秒钟?
所以我想表述的观点是:
目前,ie6普及的大环境下,暂时不要考虑w3c标准。用心做好自己的页面,能少写几行代码就少写几行代码。不要为了标准去做标准。
更多精彩内容其他人还在看

CSS入门教程:计算CSS盒模型宽和高

 出处:当我们布局一个网页的时候,经常会遇到这样的一种情况,那就是最终网页成型的宽度或是高度会超出我们预先的计算,其实就就是所谓的CSS的盒模型造成的。 #test{margin:10px;padding:10px;width:100px;height:100px;}
收藏 0 赞 0 分享

在IE流览器中正确显示PNG透明图片

  png图片有很好的品质。阴影效果也不会有杂边,很流畅。如果插入网页的话可以给网站内容增色不少!更重要的是在不增加图片容量大小的情况下提高了页面的图片的质量。对于有复杂背景,如:在有颜色过度背景上插入不规则边框的图片带来极大很便利!   但目前IE中对于插入
收藏 0 赞 0 分享

CSS教程:DIV底部放置文字

  css对文字的布局上没有靠容器底部对齐的参数,目前使用的一个不错的方法也比较好.就是用position属性来解决,看下面的代码,用position的相对和绝对定位功能也轻松的实现了,文字靠近div低部对齐,并且靠近的距离还可以精确到像素,自己可以调节,是不是很不错呢?
收藏 0 赞 0 分享

如何用CSS让文字居于div的底部

  这个问题是别人提出的,因为css对文字的布局上没有靠容器底部对齐的参数,(或许有但是我没有发现)不过目前我使用的一个不错的方法也比较好.就是用position属性来解决,看下面的代码,我用position的相对和绝对定位功能也轻松的实现了,文字靠近div低部对齐,并且靠近
收藏 0 赞 0 分享

从A页面连接到B页面后并直接把B页面的隐藏层显示

  这个效果实现的是,在B页面里有两个层,一个显示层,我们暂定名c层,一个是隐藏层,我们暂定名d层,单独进B页面的时候,c层显示,d层隐藏,然而从A页面连接到B页面的时候,则是让d层显示,c层隐藏,我觉得这个效果对网页设计者以后会有很大帮助,现在把代码发出来,
收藏 0 赞 0 分享

CSS样式表定义标签li前面样式

定义LI前面的小点样式 view plaincopy to clipboardprint? 语法: list-style-type : disc | circle | square | decimal | lower-roman | upper-roman | lowe
收藏 0 赞 0 分享

符合标准的div css制作的弹出菜单

本文介绍了五款符合标准的div css制作的弹出菜单,而且不含有js的. NO.1最基本的:二级dropdown弹出菜单 <!DOCTYPE html PUB
收藏 0 赞 0 分享

CSS实现在文章每段后面加入带连接的隐藏文字

代码主要理解3个参数:createElement、createTextNode、appendChild。这3个js参数分别是创建元素、创建字符、追加节点。代码原理:循环页面段落标签<p>,创建连接元素<a>,创建要显示的连接字符,用SetAttribute
收藏 0 赞 0 分享

CSS:浏览器特定选择器介绍

当你想在一个浏览器里改变样式而不像在其他浏览器中改变时,这些选择器很有用。 IE6以下 *html{} IE 7 以下 *:first-child html {} * html {} 只对IE 7 *:first-child html {} 只对IE 7
收藏 0 赞 0 分享

WEB标准学习,认识两种网页声明的含义

即网页标准推出来以后,我们时常会看到两种不同的网页的声明,一个是Dhtml,一个是Xhtml。如下所示: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "ht
收藏 0 赞 0 分享
查看更多