一个简单但常用的表格样式--鼠标划过行变色--简洁实现

经常性的会需要使用表格显示一些东西,当表格比较大的时候一眼望去脑袋可能会有些晕,经常性的因为没看准行而出现误操作,一般解决办法是交替行变行或者鼠标划过行变色,第一个太简单就不说了,第二个也很简单,但每个人都有不同的实现方法,下面给一个比较简洁的做法,支持IE6、IE7、FF2,其他浏览器未测试(可以扩展一下用到ASP.NET的GridView里):
<!-- 博客园 丁学 http://www.cnblogs.com/dingxue 2007.8.9 -->
<!-- 鼠标划过表格行变色-简洁实现-支持IE6、IE7、FF2,其他浏览器未测试 -->
<html>
<head>
 <title>鼠标划过表格行变色-简洁实现</title>
 <style type="text/css">
   #tb{width:666px;border-collapse:collapse;border:1px solid #EEE;font-size:14px;}
   #tb th{background:#EEE;border-bottom:1px solid #CCC;padding:4px;}
   #tb td{border:1px solid #EEE;padding:4px;}
 </style>
</head>
<body>
<table id="tb">
 <tr>
   <th>商品名称</th>
   <th>单价</th>
   <th>库存数量</th>
   <th>货位</th>
 </tr>
 <tr>
   <td>丁学最喜欢的仙四豪华版-菱纱版</td>
   <td>139</td>
   <td>10000000</td>
   <td>A12-253</td>
 </tr>
 <tr>
   <td>仙四豪华版-梦璃版</td>
   <td>139</td>
   <td>10000000</td>
   <td>A12-254</td>
 </tr>
 <tr>
   <td>仙四普通版-首发</td>
   <td>69</td>
   <td>10000000</td>
   <td>A12-255</td>
 </tr>
</table>
<script type="text/javascript">
 var obj=document.getElementById("tb");
 for(var i=0;i<obj.rows.length;i++){  //循环表格行设置鼠标事件:丁学 http://www.cnblogs.com/dingxue
   obj.rows[i].onmouseover=function(){this.style.background="#0EF";}
   obj.rows[i].onmouseout=function(){this.style.background="";}
 }
</script>

效果如下:

商品名称 单价 库存数量 货位
丁学最喜欢的仙四豪华版-菱纱版 139 10000000 A12-253
仙四豪华版-梦璃版 139 10000000 A12-254
仙四普通版-首发 69 10000000 A12-255
版权声明:本文原创发表于博客园,作者为丁学
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
posted @ 2007-08-09 07:12 丁学 阅读(1601) 评论(18)  编辑 收藏 所属分类: WEB技术

  回复  引用  查看    
#1楼 2007-08-09 08:16 | 钟天如日      
确实很好
  回复  引用  查看    
#2楼 2007-08-09 14:52 | 大奔 [未注册用户]
用不着JavaScript的吧,CSS就有这功能:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Strict//EN"><META http-equiv="Content-Type" content="text/html; charset=utf-8">

<HTML xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>鼠标划过表格行变色-简洁实现</title>
<style type="text/css">
#tb{width:666px;border-collapse:collapse;border:1px solid #EEE;font-size:14px;}
#tb th{background:#EEE;border-bottom:1px solid #CCC;padding:4px;}
#tb td{border:1px solid #EEE;padding:4px;}

#tb tr:hover{background:#0EF}
</style>
</head>
<body>
<table id="tb">
<tr>
<th>商品名称</th>
<th>单价</th>
<th>库存数量</th>
<th>货位</th>
</tr>
<tr>
<td>丁学最喜欢的仙四豪华版-菱纱版</td>
<td>139</td>
<td>10000000</td>
<td>A12-253</td>
</tr>
<tr>
<td>仙四豪华版-梦璃版</td>
<td>139</td>
<td>10000000</td>
<td>A12-254</td>
</tr>
<tr>
<td>仙四普通版-首发</td>
<td>69</td>
<td>10000000</td>
<td>A12-255</td>
</tr>
</table>

  回复  引用  查看    
#3楼 [楼主]2007-08-09 14:57 | 丁学      
@大奔
除了A标签之外,hover并不好用,IE6就不支持TR的hover
  回复  引用  查看    
#4楼 2007-08-13 04:38 | Scott [未注册用户]
疯了,写的一点儿都看不懂。。。
  回复  引用  查看    
#5楼 [楼主]2007-08-13 11:13 | 丁学      
@Scott
不对吧?在我印象中叫Scott的都是强人
  回复  引用  查看    
#6楼 2007-08-23 01:33 | 的发送 [未注册用户]
小儿科
  回复  引用  查看    
#7楼 2007-08-23 10:37 | BoyLee      
hoho,我比较擅长搞前台的东西.
  回复  引用  查看    
#8楼 2007-08-30 07:57 | ╃小〥斌╄      
用htc?
  回复  引用  查看    
#9楼 2007-09-09 12:42 | 红与黑      
细节见真知,做出这个效果很简单,主要是这个思路很值得借鉴~~
PS:这个JS不是不知道意思,而是感觉很简单,减少了好多CSS代码。
  回复  引用  查看    
#10楼 [楼主]2007-09-10 09:11 | 丁学      
@红与黑
当初的想法是想做到结构、样式、行为相分离,代码很简单,想知道这个思路能不能到工作中去用
  回复  引用  查看    
#11楼 2007-09-15 14:46 | music000      
@丁学
css写在 javascript 脚本里,如果要加载的样式比较多呢?
      推荐一个吧,这个很不错的:Son of Suckerfish Dropdowns
例子很酷:Suckerfish






  回复  引用  查看    
#12楼 2007-10-31 17:55 | 阿虎 [未注册用户]
我的运行不起来,javascript缺少对象
  回复  引用  查看    
#13楼 2007-10-31 17:56 | 阿虎 [未注册用户]
你们都能运行,奇怪!!!!555555
  回复  引用  查看    
#14楼 [楼主]2007-11-01 09:41 | 丁学      
@阿虎
代码完全复制应该是没有问题的,你是不是改了什么东西了?或者可以firefox打开看看,会提示哪里出错了,ie的错误提示基本无视
  回复  引用  查看    
#15楼 2008-04-30 02:07 | k1727@qq.com [未注册用户]
谢谢楼主分享
  回复  引用  查看    
#16楼 2008-06-12 21:38 | S.Sams      
用CSS就可以实现一样的效果. 为什么一定要写js
tr{background-color:#eee;}
tr:hover{background-color:#fff;}
  回复  引用  查看    
#17楼 [楼主]2008-06-13 10:27 | 丁学      
@S.Sams
tr:hover不受IE6支持,可惜的是目前来看IE6还占有半壁江山,所以无法忽略

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-05-18 09:37 编辑过
 
另存  打印
最新IT新闻:
· Ask完成收购Dictionary 跃居全球第9大网站
· Google Adplanner:究竟有多强大
· 微软步入后盖茨时代 鲍尔默应作10件大事
· 说说麦田的博客过时论
· 阿里巴巴确立未来十年战略规划 修改自身定位