Marquee被W3C拋棄了。這句話其實(shí)這是錯誤的,為什么呢,因?yàn)镸arquee從來都沒有被W3C視 為正式標(biāo)簽使用。
在論壇中看到網(wǎng)友jeanjean20提到Marquee怎么樣修改才能符合標(biāo)準(zhǔn)。我看了一下朋友們的跟帖覺得說得都挺好,版主greengnn指明 Marquee是不符合標(biāo)準(zhǔn)的已經(jīng)被W3C拋棄了。有朋友大打不平的說覺得去得沒道理,本來挺好的效果現(xiàn)在變沒了。也有朋友說去了好,看著就煩。大家都有 自己的理解角度,但是我們自己怎么理解是一回事,但是我們要弄清楚為什么,在這里我就greengnn的結(jié)論之后修改并補(bǔ)充一些內(nèi)容,希望大家理解并能想通。
首先要更正的一點(diǎn)是:Marquee被W3C拋棄了。這句話其實(shí)這是錯誤的,為什么呢,因?yàn)镸arquee從來都沒有被W3C視 為正式標(biāo)簽使用。W3C從來就沒有制定這一標(biāo)簽,就更沒有“拋棄”一說。這就好比還沒結(jié)婚就說離婚一樣。其實(shí)Marquee與很多其它的標(biāo)簽一樣是由微軟 與網(wǎng)景等公司私制的,而W3C一直以來都沒有承認(rèn)這一標(biāo)簽。這有錢公司就是有不講理這點(diǎn)毛病,不過這不盈利的組織就是嘴硬!
為什么 W3C一直不承認(rèn)Marquee呢?要說這個標(biāo)簽在廣大網(wǎng)頁設(shè)計人員的眼里也算是把螺絲刀?。≡谠缒赀€是我們引以為技術(shù)力量作為炫耀的資本呢??涩F(xiàn)在不主 張用了(這里要題外話:很多人說W3C不許用了,這都是錯的,W3C沒權(quán)限制你不許用或是不能用。),為什么呢那我們要明確這個標(biāo)準(zhǔn)是什么。標(biāo)準(zhǔn)并不是一 項(xiàng)技術(shù),標(biāo)準(zhǔn)只是一種規(guī)范與提議。我們用的依然是原來的HTML4.0中的標(biāo)簽,標(biāo)準(zhǔn)沒有給我們的XHTML中加入什么標(biāo)簽,而是給出了哪些是推薦使用的 (例:p,div,ul,dl,span,em…),哪些是主張不使用的(例:font,b,u,i…),并且主張了要語義化與使用規(guī)范。當(dāng)然標(biāo)準(zhǔn)不只是 XHTML同時還包括了CSS與DOM還有腳本語言。很多人以為CSS是標(biāo)準(zhǔn)后才產(chǎn)生的,其實(shí)不是,CSS很早就有了,標(biāo)準(zhǔn)之于CSS也是一樣,主張不使 用一些瀏覽器廠商制定的一些CSS,比如CSS濾鏡。
在標(biāo)準(zhǔn)中還有很重要的一點(diǎn),那就是功能性分離。分成為結(jié)構(gòu)、樣式、行為三個部 分,這三個部分分別包括了,結(jié)構(gòu)(xHTML、XML),樣工(CSS),行為(DOM、ECMAScript)。到這里我們返回來想想那個 Marquee為什么不被W3C所承認(rèn),我想大家伙都應(yīng)明白了。他與FONT、B等標(biāo)簽一樣已經(jīng)不是結(jié)構(gòu)性標(biāo)簽了。他們中帶有了樣式與行為特性,再把他們 劃在結(jié)構(gòu)的范疇里很明顯是多多余了。
所以,大家希望Marquee的效果能被保留或是實(shí)現(xiàn)就需要多多關(guān)注一下JavaScript,腳本語言一定能讓你的網(wǎng)頁動起來。要想讓你指定的地方動起來當(dāng)然要注重標(biāo)簽中的ID與CLASS的使用。
為了方便大家使用這個有意思的效果,我特意請嗷嗷寫了一段JS,看以下代碼:
JS代碼:
代碼如下:
function getElementsByClass(searchClass,tagName) {
var classElements = new Array();
if ( tagName == null )
tagName = '*';
var els = document.getElementsByTagName(tagName);
var elsLen = els.length;
var pattern = new RegExp("(^|\s)" searchClass "(\s|$)");
for (i = 0, j = 0; i < elsLen; i ) {
if ( pattern.test(els[i].className) ) {
classElements[j] = els[i];
j ;
}
}
return classElements;
}
function ccMarquee(className){
var a=getElementsByClass(className);
for (i = 0; i < a.length; i ) {
a[i].innerHTML="<marquee>" a[i].innerHTML "</marquee>";
}
}window.onload = function () {
ccMarquee("ccMarquee");
}
XHTML代碼:
代碼如下:
<div class="ccMarquee">
<a href="" title="">這里是滾動的</a>
</div>
請大家注重,需要用到滾動效果的地方只要在其何外圍的標(biāo)簽上加上Class="ccMarquee"即可。注重大小寫。
附: <marquee>標(biāo)簽屬性詳解
請大家先看下面這段代碼
代碼如下:
<marquee direction=up behavior=scroll loop=3 scrollamount=1 scrolldelay=10 align=top bgcolor=#ffffff height=300 width=30% hspace=20 vspace=10 onmouseover=this.stop() onmouseout=this.start()> 此處輸入滾動內(nèi)容 </marquee>
現(xiàn)在讓我們來具體分析一下
◎ direction表示滾動的方向,值可以是left,right,up,down,默認(rèn)為left
◎ behavior表示滾動的方式,值可以是scroll(連續(xù)滾動)slide(滑動一次)alternate(往返滾動)
◎ loop表示循環(huán)的次數(shù),值是正整數(shù),默認(rèn)為無限循環(huán)
◎ scrollamount表示運(yùn)動速度,值是正整數(shù),默認(rèn)為6
◎ scrolldelay表示停頓時間,值是正整數(shù),默認(rèn)為0,單位似乎是毫秒
◎ align表示元素的垂直對齊方式,值可以是top,middle,bottom,默認(rèn)為middle
◎ bgcolor表示運(yùn)動區(qū)域的背景色,值是16進(jìn)制的RGB顏色,默認(rèn)為白色
◎ height、width表示運(yùn)動區(qū)域的高度和寬度,值是正整數(shù)(單位是像素)或百分?jǐn)?shù),默認(rèn)width=100% height為標(biāo)簽內(nèi)元素的高度
◎ hspace、vspace表示元素到區(qū)域邊界的水平距離和垂直距離,值是正整數(shù),單位是像素。
◎ onmouseover=this.stop() onmouseout=this.start()表示當(dāng)鼠標(biāo)以上區(qū)域的時候滾動停止,當(dāng)鼠標(biāo)移開的時候又繼續(xù)滾動。