国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

Marquee為什么不符合WEB標準?

2024-04-27 13:52:56
字體:
來源:轉載
供稿:網友

  在經典論壇中看到網友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()表示當鼠標以上區域的時候滾動停止,當鼠標移開的時候又繼續滾動。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 正宁县| 遂宁市| 光山县| 德兴市| 枣阳市| 兰溪市| 滨海县| 奇台县| 延庆县| 鹤壁市| 湛江市| 关岭| 泰兴市| 日照市| 武宣县| 香港| 上杭县| 新昌县| 会东县| 蒙城县| 承德县| 元阳县| 宁津县| 仁怀市| 疏勒县| 资溪县| 东莞市| 开鲁县| 祁东县| 武山县| 保康县| 屏山县| 云和县| 平邑县| 永康市| 铜山县| 黄大仙区| 高雄市| 井冈山市| 合作市| 彭阳县|