网页设计中我们经常会碰到用CSS(层叠样式表)实现隔行换色的需求,您可以根据您的需要,采用下面的任何一种方法,当然要注意适合你的具体编码与需求情况。
一、使用background背景图片
如果行高固定的话,推荐使用隔行换色的背景图,也推荐将行高固定,这样可以兼容一切浏览器。
二、CSS Expression
文字:color:expression(this.sourceIndex%2 ? '#ff0000':'#000000');
背景:background-color:expression(this.sourceIndex%2 ? '#ff0000':'#000000');
注意:本方法浏览器兼容度不够,不支持FF3。
三、class分别定义
<ul>
<li class="bgcolor">...
<li>...
<li class="bgcolor">...
<li>...
</ul>
实实在在的写法。
四、通过JS
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>www.devdao.com - 四种实现CSS隔行换色的方法</title>
<link href="index.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
function bgChange(){
if(!document.getElementsByTagName) return false;
var tables = document.getElementsByTagName("table");
for(var i=0; i<tables.length; i++){
var odd = false;
trs = tables[i].getElementsByTagName("tr");
for(var j=0; j<trs.length; j++){
if(odd==true){
trs[j].style.background = "#ccc";
odd = false;
}else{
odd = true;
}
}
}
}
window.onload = bgChange;
</script>
</head>
<body >
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>测试文字</td>
<td>测试文字</td>
<td>测试文字</td>
</tr>
<tr>
<td>测试文字</td>
<td>测试文字</td>
<td>测试文字</td>
</tr>
<tr>
<td>测试文字</td>
<td>测试文字</td>
<td>测试文字</td>
</tr>
<tr>
<td>测试文字</td>
<td>测试文字</td>
<td>测试文字</td>
</tr>
<tr>
<td>测试文字</td>
<td>测试文字</td>
<td>测试文字</td>
</tr>
<tr>
<td>测试文字</td>
<td>测试文字</td>
<td>测试文字</td>
</tr>
<tr>
<td>测试文字</td>
<td>测试文字</td>
<td>测试文字</td>
</tr>
<tr>
<td>测试文字</td>
<td>测试文字</td>
<td>测试文字</td>
</tr>
<tr>
<td>测试文字</td>
<td>测试文字</td>
<td>测试文字</td>
</tr>
<tr>
<td>测试文字</td>
<td>测试文字</td>
<td>测试文字</td>
</tr>
</table>
<script type=’text/javascript’>
//<![CDATA[
if (document.getElementById(’processtime’)) document.getElementById(’processtime’).innerHTML="<span class=’runtimedisplay’>Run in 184 ms, 9 Queries.</span>";
//]]>
</script></body>
</html>