利用 CSS selector 改变悬停表格样式

   在WEB应用中,为了方便用户查看表格,将鼠标悬停的表格行改变样式,如改变底色,会给用户很好的体验,特别是表格比较宽的时候,不会看串行。
   原来为了实现这个功能,我的办法是用js捕获鼠标事件来完成:


<table>
  <tr onmouseover="this.style.background='#c0c0c0'" onmouseout="this.style.background='#ffffff'">
    <td>1</td><td>表格内容</td>
  </tr>
  <tr onmouseover="this.style.background='#c0c0c0'" onmouseout="this.style.background='#ffffff'">
    <td>2</td><td>表格内容</td>
  </tr>
</table>


今天在看Dave Crane的《Ajax in Action》附带的示例时,发现有 span:hover 这样的CSS 选择器,原来一直以为 hover 是应用在链接TAG上的,没想到还可以这样用。进一部联想如果是这样的话,表格行的悬停是否可以呢?经过试验,答案是肯定的。IE和Firefox均支持这样的用法。

<!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" />
  <head>
    <title>新的表格行悬停方法</title>
    <style type="text/css">
       tr:hover{background:#FFCC00;cursor: hand;}
    </style>
  </head>
  <body>
    <table>
        <tr>
            <td>1</td><td>表格内容</td>
        </tr>
        <tr>
            <td>2</td><td>表格内容</td>
        </tr>
     </table>
  </body>
</html>


这个方法可以使代码简洁不少。不仅仅是tr标签可以这样使用,其他如div,img,span等都可以,进一步的联想就留给大家吧。
顺便说下,还可以利用CSS选择器对数值进行判断以用不同的样式显示出来,比如出现负数就红字等。具体的文档大家可以参看W3C网站。

原文地址:https://www.cnblogs.com/hsxixi/p/1339144.html