锁定老帖子 主题:一个用CSS实现隔行变色的技术
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (5)
|
|
---|---|
作者 | 正文 |
发表时间:2010-01-30
以前在做页面显示列表时候,要做一组数据隔行变色,当时不知道,竟然用来了好多java脚本判断,写了许多像下面的例子。 <table> <%int c =0;%> //循环取列表 <% if (c % 2 == 0) { className = "一种颜色"; } else { className = "另外一种颜色"; } c++; %> <tr lcass="className"> <td></td> </tr> //循环结束 </table>
某一天才发现有如下的方法,可以直接在css中写: .Pop_TR{ 这样,想展示上面的样式,只需要这样写: <table> //循环取列表 <tr lcass="Pop_TR"> <td></td> </tr> //循环结束 </table>
这样一来,的确减少了不少代码,jsp中也不需要写那些丑陋的java脚本了。css技术,还真要下一番功夫去研究。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-01-30
firefox咋办?
|
|
返回顶楼 | |
发表时间:2010-01-31
首先是IE Only;
其次是效率很低。 结论是最好不用。 |
|
返回顶楼 | |
发表时间:2010-01-31
expression会死人的,如果页面很复杂。还不如前面的切换2个class的简单方法可靠。
在高级浏览器中可以考虑使用css selector(流行的js库基本都实现了一套): tr:nth-child(2n+1) /* 奇数行 */ tr:nth-child(odd) /* 奇数行 */ tr:nth-child(2n+0) /* 偶数行 */ tr:nth-child(even) /* 偶数行 */ |
|
返回顶楼 | |
发表时间:2010-01-31
JQuery的话也很简单
1. 通过定义俩个class来实现 $("tr:even").addClass("even-row"); $("tr:odd").addClass("odd-row"); 2. 或者一行代码 $("tr").each(function(i){this.style.backgroundColor['#ccc','#fff'][i%2]}) |
|
返回顶楼 | |
发表时间:2010-02-02
xyztony1985 写道 首先是IE Only;
其次是效率很低。 结论是最好不用。 正解! |
|
返回顶楼 | |
发表时间:2010-02-02
用jquery就不好了
|
|
返回顶楼 | |
发表时间:2010-02-02
不需要用jquery,用1张背景图就搞定。
|
|
返回顶楼 | |
发表时间:2010-02-02
背景图repeat-x repeat-y
|
|
返回顶楼 | |
发表时间:2010-02-02
最后修改:2010-02-02
做个table奇偶行区别显示的css类就好了,这东西不复杂的
<tbody> <s:iterator id="ip" status="status" value="ipUseList"> <tr class="<s:property value="#status.odd?'odd':'even'"/>"> <td><s:property value="#ip.subnet"/></td> <td><s:property value="#ip.netmask"/></td> <td><s:property value="#ip.city_name"/></td> <td><s:property value="#ip.country"/></td> <td><s:property value="#ip.subnetcomment"/></td> </tr> </s:iterator> </tbody> |
|
返回顶楼 | |