|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Resig在2008年在其博客中介绍过HTML5的data-属性,现如今HTML5在如火如荼地推广,似乎国内的技术有些延迟,这篇博文可以在这里找到。破洛洛文章简介:三种制造隔行斑马线表格的办法先容.
复杂的斑马纹表格,假如页面上有大批的表格数据时,隔行变色的斑马纹会匡助我们疾速浏览,有益于用户体验。我们明天不会商在静态言语中的办法,只会商CSS,JavaScript,MooTools是怎样完成的,并有三种可行性计划。
我们的表格
TheHtmlCode:
- <tableid="playlist"cellspacing="0"><tbody><tr><td>1</td><td>LostInThePlot</td><td>TheDears</td></tr><tr><td>2</td><td>Poison</td><td>TheConstantines</td></tr><tr><td>3</td><td>PleaFromACatNamedVirtute</td><td>TheWeakerthans</td></tr><tr><td>4</td><td>MelissaLouise</td><td>Chixdiggit!</td></tr><tr><td>5</td><td>LivingRoom</td><td>TeganAndSara</td></tr><tr><td>6</td><td>Speed</td><td>BranVan3000</td></tr><tr><td>7</td><td>FastMoneyBlessing</td><td>KingCobbSteelie</td></tr><tr><td>8</td><td>Sore</td><td>Buck65</td></tr><tr><td>9</td><td>LoveTravel</td><td>DankoJones</td></tr><tr><td>10</td><td>YouNeverLetMeDown</td><td>Furnaceface</td></tr></tbody></table>
复制代码 我们下面所看到的表格,就是我们要丑化的表格,要完成斑马纹的表格。
计划一:
在CSS3中有很多的伪类选择器,个中的
- E:nth-child(n):{attribute}
复制代码 它能够婚配父元素中的第n个子元素E。
TheCSS3Code
- /*取得奇偶数的子元素*/tr:nth-child(odd){background-color:#eee;}//一切奇数序子元素tr:nth-child(even){background-color:#fff;}//一切偶数序子元素/*同上一样的感化*/tr:nth-child(2n){background-color:#eee;}//前往偶数序的子元素tr:nth-child(2n+1){background-color:#fff;}//前往奇数序的子元素
复制代码 计划二:
TheJavaScriptCode
//thisfunctionisneedtoworkaround
//abuginIErelatedtoelementattributes
functionhasClass(obj){
varresult=false;
if(obj.getAttributeNode("class")!=null){
result=obj.getAttributeNode("class").value;
}
returnresult;
}
functionstripe(id){
//theflagwellusetokeeptrackof
//whetherthecurrentrowisoddoreven
vareven=false;
//ifargumentsareprovidedtospecifythecolours
//oftheeven&oddrows,thenusethethem;
//otherwiseusethefollowingdefaults:
varevenColor=arguments[1]?arguments[1]:"#fff";
varoddColor=arguments[2]?arguments[2]:"#eee";
//obtainareferencetothedesiredtable
//ifnosuchtableexists,abort
vartable=document.getElementById(id);
if(!table){return;}
//bydefinition,tablescanhavemorethanonetbody
//element,sowellhavetogetthelistofchild
//<tbody>s
vartbodies=table.getElementsByTagName("tbody");
//anditeratethroughthem...
for(varh=0;h<tbodies.length;h++){
//findallthe<tr>elements...
vartrs=tbodies[h].getElementsByTagName("tr");
//...anditeratethroughthem
for(vari=0;i<trs.length;i++){
//avoidrowsthathaveaclassattribute
//orbackgroundColorstyle
if(!hasClass(trs)&&!trs.style.backgroundColor){
//getallthecellsinthisrow...
vartds=trs.getElementsByTagName("td");
//anditeratethroughthem...
for(varj=0;j<tds.length;j++){
varmytd=tds[j];
//avoidcellsthathaveaclassattribute
//orbackgroundColorstyle
if(!hasClass(mytd)&&!mytd.style.backgroundColor){
mytd.style.backgroundColor=even?evenColor:oddColor;
}
}
}
//flipfromoddtoeven,orvice-versa
even=!even;
}
}
}
window.onload=function(){stripe(playlist,#fff,#eee);}
在之前MooTools1.1的老版本中是不撑持CSS3选择器的,那又怎样完成那。
计划三:
TheCSSCode:
- .odd{background:#fff;color:#666;}.even{background-color:#3d80df;color:#FFF;}
复制代码 TheMooToolsJavaScript:
- window.addEvent(domready,function(){varcount=0;$(table.shade-tabletr).each(function(el){el.addClass(count++%2==0?odd:even);});});
复制代码 假如你已利用了MooTools1.2+的版本,我们就能够用MooToolsSelectors的伪类选择器,它的语法是相似于CSS3的伪类选择器的。
TheMooToolsJavaScript:
- $(table#playlisttr:nth-child(odd)).addClass(odd);$(table#playlisttr:nth-child(even)).addClass(even);/*$(table#playlisttr:nth-child(2n+1)).addClass(odd);$(table#playlisttr:nth-child(2n)).addClass(even);*/
复制代码 在鼠标经由时高亮表格行列
TheCSSCode:
- .over{background-color:#F00;color:#FFF;}
复制代码 TheMooToolsJavaScript:
$$("table#playlisttr").addEvent(mou搜索引擎优化ver,function(){this.addClass("over");}).addEvent(mou搜索引擎优化ut,function(){this.removeClass("over");});</p>
通过我们的HTML编辑器,您能够编辑HTML,然后点击按钮来查看结果。 |
|