论坛首页 Web前端技术论坛

一个用CSS实现隔行变色的技术

浏览 16297 次
精华帖 (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{
 background-color:expression(this.rowIndex%2==0 ? "一种颜色":"另一种颜色");
 cursor:hand;
}

 这样,想展示上面的样式,只需要这样写:

<table>
//循环取列表
      <tr lcass="Pop_TR">
       <td></td>

     </tr>

//循环结束
</table>

 

这样一来,的确减少了不少代码,jsp中也不需要写那些丑陋的java脚本了。css技术,还真要下一番功夫去研究。

 

   发表时间:2010-01-30  
firefox咋办?
0 请登录后投票
   发表时间:2010-01-31  
首先是IE Only;
其次是效率很低。

结论是最好不用。
0 请登录后投票
   发表时间: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) /* 偶数行 */
0 请登录后投票
   发表时间: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]})    
0 请登录后投票
   发表时间:2010-02-02  
xyztony1985 写道
首先是IE Only;
其次是效率很低。

结论是最好不用。

正解!
0 请登录后投票
   发表时间:2010-02-02  
用jquery就不好了
0 请登录后投票
   发表时间:2010-02-02  
不需要用jquery,用1张背景图就搞定。
0 请登录后投票
   发表时间:2010-02-02  
背景图repeat-x repeat-y
0 请登录后投票
   发表时间: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>		

2 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics