在論壇中看到網友jeanjean20提到Marquee怎麼樣修改才能符合標准。我看了一下朋友們的跟帖覺得說得都挺好,版主greengnn指明 Marquee是不符合標准的已經被W3C拋棄了。有朋友大打不平的說覺得去得沒道理,本來挺好的效果現在變沒了。也有朋友說去了好,看著就煩。大家都有 自己的理解角度,但是我們自己怎麼理解是一回事,但是我們要弄清楚為什麼,在這裡我就greengnn的結論之後修改並補充一些內容,希望大家理解並能想通。
首先要更正的一點是:Marquee被W3C拋棄了。這句話其實這是錯誤的,為什麼呢,因為Marquee從來都沒有被W3C視 為正式標簽使用。W3C從來就沒有制定這一標簽,就更沒有“拋棄”一說。這就好比還沒結婚就說離婚一樣。其實Marquee與很多其它的標簽一樣是由微軟 與網景等公司私制的,而W3C一直以來都沒有承認這一標簽。這有錢公司就是有不講理這點毛病,不過這不盈利的組織就是嘴硬!
為什麼 W3C一直不承認Marquee呢?要說這個標簽在廣大網頁設計人員的眼裡也算是把螺絲刀啊!在早年還是我們引以為技術力量作為炫耀的資本呢。可現在不主 張用了(這裡要題外話:很多人說W3C不許用了,這都是錯的,W3C沒權限制你不許用或是不能用。),為什麼呢那我們要明確這個標准是什麼。標准並不是一 項技術,標准只是一種規范與提議。我們用的依然是原來的HTML4.0中的標簽,標准沒有給我們的XHTML中加入什麼標簽,而是給出了哪些是推薦使用的 (例:p,div,ul,dl,span,em…),哪些是主張不使用的(例:font,b,u,i…),並且主張了要語義化與使用規范。當然標准不只是 XHTML同時還包括了CSS與DOM還有腳本語言。很多人以為CSS是標准後才產生的,其實不是,CSS很早就有了,標准之於CSS也是一樣,主張不使 用一些浏覽器廠商制定的一些CSS,比如CSS濾鏡。
在標准中還有很重要的一點,那就是功能性分離。分成為結構、樣式、行為三個部 分,這三個部分分別包括了,結構(xHTML、XML),樣工(CSS),行為(DOM、ECMAScript)。到這裡我們返回來想想那個 Marquee為什麼不被W3C所承認,我想大家伙都應明白了。他與FONT、B等標簽一樣已經不是結構性標簽了。他們中帶有了樣式與行為特性,再把他們 劃在結構的范疇裡很明顯是多多余了。
所以,大家希望Marquee的效果能被保留或是實現就需要多多關注一下JavaScript,腳本語言一定能讓你的網頁動起來。要想讓你指定的地方動起來當然要注重標簽中的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>
請大家注重,需要用到滾動效果的地方只要在其何外圍的標簽上加上Class="ccMarquee"即可。注重大小寫。
附: <marquee>標簽屬性詳解
請大家先看下面這段代碼
復制代碼代碼如下:
<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()> 此處輸入滾動內容 </marquee>
現在讓我們來具體分析一下
◎ direction表示滾動的方向,值可以是left,right,up,down,默認為left
◎ behavior表示滾動的方式,值可以是scroll(連續滾動)slide(滑動一次)alternate(往返滾動)
◎ loop表示循環的次數,值是正整數,默認為無限循環
◎ scrollamount表示運動速度,值是正整數,默認為6
◎ scrolldelay表示停頓時間,值是正整數,默認為0,單位似乎是毫秒
◎ align表示元素的垂直對齊方式,值可以是top,middle,bottom,默認為middle
◎ bgcolor表示運動區域的背景色,值是16進制的RGB顏色,默認為白色
◎ height、width表示運動區域的高度和寬度,值是正整數(單位是像素)或百分數,默認width=100% height為標簽內元素的高度
◎ hspace、vspace表示元素到區域邊界的水平距離和垂直距離,值是正整數,單位是像素。
◎ onmouseover=this.stop() onmouseout=this.start()表示當鼠標以上區域的時候滾動停止,當鼠標移開的時候又繼續滾動。