含有Flash的網(wǎng)頁如何通過校驗?_Div+CSS教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
關(guān)于W3C的xhtml和css校驗,在某些時候大家都是比較看重的。不過我現(xiàn)在要強(qiáng)調(diào),校驗只是檢測代碼的一種手段,不是我們制作符合Web標(biāo)準(zhǔn)網(wǎng)站的最終目標(biāo)。我們制作符合Web標(biāo)準(zhǔn)網(wǎng)站的意義在于內(nèi)容、結(jié)構(gòu)、表現(xiàn)相分離,使我們的頁面代碼更簡潔,更精減,更快速。
提交我們的網(wǎng)頁看W3C的校驗,目的在于查看我們的代碼是不是符合規(guī)范,是不是有錯誤與使用不妥的東西存在,是我們在制作符合Web標(biāo)準(zhǔn)網(wǎng)站的過程中的一種檢測,一種輔助設(shè)計罷了。
下面我們切入主題:有Flash的網(wǎng)頁如何通過校驗?
1、embed是非法的
<embed>標(biāo)簽是Netscape的私有標(biāo)簽,雖然<embed>標(biāo)簽應(yīng)用廣泛存在,但是從HTML3.2,HTML4.0到XHTML1.0,W3C都沒有收錄這個標(biāo)簽。使用<embed>標(biāo)簽的頁面將不能通過W3C校驗。
2、應(yīng)該用object
W3C推薦的是<object>標(biāo)簽。甚至在XHTML2中,<img>都要被<object>所取代。用<object>方法插入flash的代碼是:
示例代碼 [www.hl5o.cn]
<object type="application/x-shockwave-flash" data="test.swf" width="200" height="100">
<parm name="movie" value="test.swf /></object>
<parm name="movie" value="test.swf /></object>
但是這個方法在IE5-IE6/Win上不能正確顯示(不能連續(xù)播放,要下載完才能放),在低版本的可以正確顯示。后來采用先調(diào)一個小flash文件再嵌入大flash文件的方法解決了連續(xù)播放的問題,但是在IE5以上版本有時依然出現(xiàn)不能顯示flash的情況。
3、目前的臨時辦法
那么既要符合標(biāo)準(zhǔn),又想在所有瀏覽器正確顯示flash應(yīng)該怎么做?macromedia網(wǎng)站是如何通過W3c校驗的?有設(shè)計師想到了用JavaScript來隱藏非法的<embed>標(biāo)簽:
示例代碼 [www.hl5o.cn]
<script type="text/javascript "> if (navegiator . mimeTypes && navigator .
mimeTypes["application/x-shockwave-flash"] {
document . write('<embed src="test . swf" ...
mimeTypes["application/x-shockwave-flash"] {
document . write('<embed src="test . swf" ...
這是目前比較好的解決辦法。你一定要插flash,就用js調(diào)用。這種方法可以欺騙W3C的校驗程序,使頁面通過校驗。但僅僅是"欺騙",而不是真符合標(biāo)準(zhǔn)。
macromedia是怎么做的呢?看到這句代碼:
示例代碼 [www.hl5o.cn]
<!-- $RCSfile: FlashDetection2k.pm,v $ $Revision: 1.68 $ : your browser's accept header
indicates you have Flash 6,0,65,0 or better, so you're OK for this Flash 6 movie,
here it comes. -->
indicates you have Flash 6,0,65,0 or better, so you're OK for this Flash 6 movie,
here it comes. -->
它采用了一個折中二選一的辦法:
(1)、首先javascript來判定你的瀏覽器版本和flash player的版本;
(2)、根據(jù)版本的不同在后臺動態(tài)的生成HTML代碼。
簡單說就是默認(rèn)采用<object>方法,假如瀏覽器不能處理object的MIME類型“ application/x-shockwave-flash”,它就插入子元素<embed>。說穿了,這和用js隱藏<embed>方法類似,也是一種“欺騙”的辦法,但這是目前能夠做到的最符合標(biāo)準(zhǔn)的,比較完美的做法了。
要想真正拋棄<embed>,只能等IE瀏覽器對<object>更好的支持才行,也許要等到Longhorn出來了。
參考:W3CN
相關(guān)Div+CSS教程:
- DIV+CSS設(shè)計的誤區(qū)
- CSS基礎(chǔ):常用CSS英文字體介紹
- IE6和IE7中border邊框斷線現(xiàn)象
- border:none;與border:0;的有什么不同?
- div+css下js對聯(lián)廣告不隨屏幕滾動的解決方法
- HTML元素的ID和Name屬性的區(qū)別
- divcss教程:深入了解css的行高Line Height屬性
- CSS文檔流,塊級元素和內(nèi)聯(lián)元素
- 5個你該知道的CSS3新技術(shù)
- 用正則表達(dá)式替換a標(biāo)記href值
- 30個優(yōu)秀的CSS導(dǎo)航和按鈕設(shè)計教程
- css中px和em有什么區(qū)別
- 相關(guān)鏈接:
- 教程說明:
Div+CSS教程-含有Flash的網(wǎng)頁如何通過校驗?
。