自动隔行颜色及鼠标移到行变色HTML表格

cuinew

文章最后更新时间:2023年06月29日已超过405天没有更新。

在做内容网页时,避免不了要用到表格来展示数据及内容,正所谓好马配好鞍,一个与网站风格匹配的表格可以提升不少用户体验。本篇文章将介绍制作一款自适应自动隔行颜色+鼠标移到行变色的精美HTML表格。效果如下图所示:
自动隔行颜色及鼠标移到行变色HTML表格
先来制作一个HTML标准的表格,代码如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>HTML标准表格</title>
</head>
<body>
    <table>
        <thead>
            <tr><!-- 表头用th标签 -->
                <th>姓名</th>
                <th>性别</th>
                <th>部门</th>
                <th>入职时间</th>
                <th>薪资</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>王小红</td>
                <td>女</td>
                <td>行政部</td>
                <td>2020-05-01</td>
                <td>5500</td>
            </tr>
            <tr>
                <td>李明亮</td>
                <td>男</td>
                <td>技术部</td>
                <td>2019-02-16</td>
                <td>12000</td>
            </tr>
            <tr>
                <td>张三山</td>
                <td>男</td>
                <td>业务部</td>
                <td>2017-08-23</td>
                <td>9000</td>
            </tr>
            <tr>
                <td>陈研秀</td>
                <td>女</td>
                <td>财务部</td>
                <td>2017-09-14</td>
                <td>6500</td>
            </tr>
            <tr>
                <td>何东东</td>
                <td>男</td>
                <td>人事部</td>
                <td>2019-02-21</td>
                <td>6800</td>
            </tr>
        </tbody>
    </table>
</body>
</html>

表格制作完以后,加入CSS样式进行美化及隔行颜色效果,CSS样式代码如下:

table{width:100%; border-collapse:collapse;}
table,tr,td,th{padding:0; margin:0; line-height:30px;}
table thead tr th {color:#FFF; font-size:16px; font-weight:400; background-color:#888; border-left:1px solid #888; border-right:1px solid #ddd;}
table tbody td{text-align:center; border:1px solid #ddd;}
table tbody tr:nth-child(2n) {background-color:#f8f8f8;}/*隔行颜色*/

1、CSS鼠标事件

加入CSS鼠标事件,让鼠标移到指定行时背景变色,这里的鼠标事件通过定义在<tbody>标签区域,即表格内容区域(表头区域不受影响),鼠标事件CSS代码:

table tbody tr:hover{background-color:#fcfced;}

完成后,把所有代码组合在一起,即可得到完整的表格效果:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>表格隔行颜色+鼠标移动至行变色</title>
<style>
table{width:100%; border-collapse:collapse;}
table,tr,td,th{padding:0; margin:0; line-height:30px;}
table thead tr th {color:#FFF; font-size:16px; font-weight:400; background-color:#888; border-left:1px solid #888; border-right:1px solid #ddd;}
table tbody td{text-align:center; border:1px solid #ddd;}
table tbody tr:nth-child(2n) {background-color:#f8f8f8;}/*隔行颜色*/
table tbody tr:hover{background-color:#fcfced;}/*鼠标移动至行变色*/
</style>
</head>
<body>
    <table>
        <thead>
            <tr><!-- 表头用th标签 -->
                <th>姓名</th>
                <th>性别</th>
                <th>部门</th>
                <th>入职时间</th>
                <th>薪资</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>王小红</td>
                <td>女</td>
                <td>行政部</td>
                <td>2020-05-01</td>
                <td>5500</td>
            </tr>
            <tr>
                <td>李明亮</td>
                <td>男</td>
                <td>技术部</td>
                <td>2019-02-16</td>
                <td>12000</td>
            </tr>
            <tr>
                <td>张三山</td>
                <td>男</td>
                <td>业务部</td>
                <td>2017-08-23</td>
                <td>9000</td>
            </tr>
            <tr>
                <td>陈研秀</td>
                <td>女</td>
                <td>财务部</td>
                <td>2017-09-14</td>
                <td>6500</td>
            </tr>
            <tr>
                <td>何东东</td>
                <td>男</td>
                <td>人事部</td>
                <td>2019-02-21</td>
                <td>6800</td>
            </tr>
        </tbody>
    </table>
</body>
</html>

2、JS鼠标事件

除了CSS鼠标事件可以实现鼠标移到行变色外,还可以通过JS的鼠标事件来进行控制,为了兼容性,建议用JS来控制更佳。
JS鼠标事件使用方法:

把表格内容<tbody>标签内增加一个定位id,修改为<tbody id="cuinew">

再在<head>标签内加入以下js代码:

<script type="text/javascript" >
window.onload = function(){
  //鼠标移到表格的行背景色改变
  var  rows = $('cuinew').rows;//获取行ID
  for(var i in rows){
      rows[i].onmouseover = function(){
          this.style.backgroundColor = '#fcfced';//鼠标移到行样式
      };
      rows[i].onmouseout = function(){
          this.style.backgroundColor = '';//鼠标离开行样式
      };
  }
}
function $(id){
  return document.getElementById(id);
}
</script>

至此大功造成,完整的表格HTML代码如下

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>表格鼠标事件</title>
<style>
table{width:100%;border-collapse:collapse;}
table,tr,td,th{padding:0;margin:0;line-height:30px;}
table thead tr th {color:#FFF;font-size:16px;font-weight:400;background-color:#888;border-left:1px solid #888;border-right:1px solid #ddd;}
table tbody td{text-align:center;border:1px solid #ddd;}
table tbody tr:nth-child(2n) {background-color:#f8f8f8;/*隔行颜色*/}
</style>
<script type="text/javascript" >
window.onload = function(){
  //鼠标移到表格的行背景色改变
  var  rows = $('cuinew').rows;//获取行ID
  for(var i in rows){
      rows[i].onmouseover = function(){
          this.style.backgroundColor = '#fcfced';//鼠标移到行样式
      };
      rows[i].onmouseout = function(){
          this.style.backgroundColor = '';//鼠标离开行样式
      };
  }
}
function $(id){
  return document.getElementById(id);
}
</script>
</head>
<body>
  <table>
      <thead>
          <tr><!-- 表头用th标签 -->
              <th>姓名</th>
              <th>性别</th>
              <th>部门</th>
              <th>入职时间</th>
              <th>薪资</th>
          </tr>
      </thead>
      <tbody id="cuinew"><!-- 内容表格插入获取的Id -->
          <tr>
              <td>王小红</td>
              <td>女</td>
              <td>行政部</td>
              <td>2020-05-01</td>
              <td>5500</td>
          </tr>
          <tr>
              <td>李明亮</td>
              <td>男</td>
              <td>技术部</td>
              <td>2019-02-16</td>
              <td>12000</td>
          </tr>
          <tr>
              <td>张三山</td>
              <td>男</td>
              <td>业务部</td>
              <td>2017-08-23</td>
              <td>9000</td>
          </tr>
          <tr>
              <td>陈研秀</td>
              <td>女</td>
              <td>财务部</td>
              <td>2017-09-14</td>
              <td>6500</td>
          </tr>
          <tr>
              <td>何东东</td>
              <td>男</td>
              <td>人事部</td>
              <td>2019-02-21</td>
              <td>6800</td>
          </tr>
      </tbody>
  </table>
</body>
</html>
文章版权声明:除非注明,否则均为崔牛网原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (有 7 条评论,5028人围观)
网友昵称:爱看书的猫儿
爱看书的猫儿 V 游客 沙发
2023-05-25 01:34:46 回复
匆匆路过这里,留下一个脚印吧~![Fabulous]
网友昵称:访客
访客 V 游客 椅子
2024-07-06 09:45:42 回复
今天的心情很不错啊http://3du.jujiabide.com/
网友昵称:访客
访客 V 游客 板凳
2024-07-06 12:50:43 回复
我和我的小伙伴都惊呆了!http://35vsv.meiheman.com/
网友昵称:访客
访客 V 游客 凉席
2024-07-07 18:13:07 回复
语言表达流畅,没有冗余,读起来很舒服。http://3bi.net/post/1476.html/
网友昵称:访客
访客 V 游客 地板
2024-07-07 18:31:25 回复
一口气看完了,我要下去回味回味了!http://3bi.net/post/1484.html/
网友昵称:访客
访客 V 游客 6楼
2024-07-08 02:19:20 回复
精华帖的节奏啊!http://3bi.net/post/1213.html/
网友昵称:访客
访客 V 游客 7楼
2024-07-08 02:34:04 回复
看帖不回帖的人就是耍流氓,我回复了!http://3bi.net/post/3390.html/

目录[+]

取消
微信二维码
微信二维码
支付宝二维码