如图显示:
红色部分为固定的行列。
话不多说,下图代码,直接复制出来新建一个html文件打开即可;
<!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=gb2312" />
<title>固定标题列、标题头table</title>
<style>
table {
border-collapse: collapse;
border-spacing: 0px;
width: 100%;
border: #9E9E9E solid 0px;
font-family: "Microsoft YaHei UI";
font-size: 14px;
}
td {
mso-style-parent: style0;
padding-top: 1px;
padding-right: 1px;
padding-left: 1px;
mso-ignore: padding;
color: windowtext;
font-size: 12.0pt;
font-weight: 400;
font-style: normal;
text-decoration: none;
mso-generic-font-family: auto;
mso-font-charset: 134;
mso-number-format: General;
text-align: general;
vertical-align: bottom;
border: none;
mso-background-source: auto;
mso-pattern: auto;
mso-protection: locked visible;
white-space: nowrap;
mso-rotate: 0;
}
table td {
border: 1px solid #9E9E9E;
height: 25px;
text-align: center;
border-left: 0px;
}
table th {
border: #9E9E9E solid 1px;
white-space: nowrap;
height: 21px;
border-top: 0px;
border-left: 0px;
}
.t_left {
width: 30%;
height: auto;
float: left;
border-top: 1px solid #9E9E9E;
border-left: 1px solid #9E9E9E;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/*t_r_content和cl_freeze高度相差20px, 高度为外观显示高度,可根据情况调整*/
.t_r_content {
width: 100%;
height: 220px;
background: #fff;
overflow: auto;
}
.cl_freeze {
height: 200px;
overflow: hidden;
width: 100%;
}
/* width 调整左边标题列宽度(左侧外观显示宽度); 指定为width:auto 在Opera下显示有问题; height比 t_r_content 高度小20px*/
/* width 宽度为 右侧外观显示宽度 实际显示宽度大小为“t_r”宽度加上“cl_freeze”宽度 */
/* 如果显示不正常,调整 t_r的width 使其和t_left的width之和小于100%;等于100%时会有问题*/
.t_r {
width: 70%;
height: auto;
float: left;
border-top: 1px solid #9E9E9E;
border-right: #9E9E9E solid 1px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.t_r table {
width: 1700px;
}
.t_r_title {
width: 1720px;
}
/*宽度比 t_r table 大20px (至少大20,小了滚动条滑到右侧显示有问题)*/
.t_r_t {
width: 100%;
overflow: hidden;
}
.bordertop {
border-top: 0px;
}
.t-title{
font-size: 18px;
line-height: 30px;
height: 30px;
}
th.t-col-num ,th.t-row-num ,td.t-row-num{
background: #d8d8d8;
color: #555;
}
.t-row-title{
background: rgb(191, 191, 191);
}
</style>
<script>
function aa() {
var a = document.getElementById("t_r_content").scrollTop+1;
var b = document.getElementById("t_r_content").scrollLeft;
document.getElementById("cl_freeze").scrollTop = a;
document.getElementById("t_r_t").scrollLeft = b;
}
</script>
</head>
<body>
<div class="t-wrap">
<!--<div class="t-top" style="width:100%">
<table>
<thead>
<tr>
<th class="t-row-num" width="20"></th>
<th width="80">A</th>
<th width="80">B</th>
<th width="200">C</th>
<th width="200">D</th>
<th width="200">E</th>
<th width="200">F</th>
<th width="200">G</th>
<th width="200">H</th>
</tr>
<tr>
<th class="t-row-num" width="20">1</th>
<th colspan="8" class="t-title">这里是标题内容</th>
</tr>
</thead>
</table>
</div>-->
<div style="width:100%">
<div class="t_left">
<div style="width:100%;">
<table>
<tr>
<th class="t-col-num" width="20"></th>
<th class="t-col-num" width="80">A</th>
<th class="t-col-num" width="80">B</th>
</tr>
<tr>
<th class="t-row-num" width="20">1</th>
<th class="t-title" colspan="2"></th>
</tr>
<tr>
<th class="t-row-num" width="20">2</th>
<th class="t-row-title" width="80">A</th>
<th class="t-row-title" width="80">B</th>
</tr>
<tr>
<th class="t-row-num" width="20">3</th>
<th class="t-row-title" width="80">列名1</th>
<th class="t-row-title" width="80">列名2</th>
</tr>
</table>
</div>
<div class="cl_freeze" id="cl_freeze">
<table>
<tr>
<td class="t-row-num" width="20">4</td>
<td class="bordertop" width="80">1</td>
<td class="bordertop" width="80">1</td>
</tr>
<tr>
<td class="t-row-num" width="20">5</td>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td class="t-row-num" width="20">6</td>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td class="t-row-num" width="20">7</td>
<td>4</td>
<td>4</td>
</tr>
<tr>
<td class="t-row-num" width="20">8</td>
<td>5</td>
<td>5</td>
</tr>
<tr>
<td class="t-row-num" width="20">9</td>
<td>6</td>
<td>6</td>
</tr>
<tr>
<td class="t-row-num" width="20">10</td>
<td>7</td>
<td>7</td>
</tr>
<tr>
<td class="t-row-num" width="20">11</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td class="t-row-num" width="20">12</td>
<td>9</td>
<td>9</td>
</tr>
<tr>
<td class="t-row-num" width="20">13</td>
<td>10</td>
<td>10</td>
</tr>
<tr>
<td class="t-row-num" width="20">14</td>
<td>11</td>
<td>11</td>
</tr>
<tr>
<td class="t-row-num" width="20">15</td>
<td>12</td>
<td>12</td>
</tr>
<tr>
<td class="t-row-num" width="20">16</td>
<td>13</td>
<td>13</td>
</tr>
<tr>
<td class="t-row-num" width="20">17</td>
<td>14</td>
<td>14</td>
</tr>
<tr>
<td class="t-row-num" width="20">18</td>
<td>15</td>
<td>15</td>
</tr>
<tr>
<td class="t-row-num" width="20">19</td>
<td>16</td>
<td>16</td>
</tr>
<tr>
<td class="t-row-num" width="20">20</td>
<td>17</td>
<td>17</td>
</tr>
<tr>
<td class="t-row-num" width="20">21</td>
<td>18</td>
<td>18</td>
</tr>
<tr>
<td class="t-row-num" width="20">22</td>
<td>19</td>
<td>19</td>
</tr>
<tr>
<td class="t-row-num" width="20">23</td>
<td>20</td>
<td>20</td>
</tr>
</table>
</div>
</div>
<div class="t_r">
<div class="t_r_t" id="t_r_t">
<div class="t_r_title">
<table>
<tr>
<th class="t-col-num" width="200">C</th>
<th class="t-col-num" width="200">D</th>
<th class="t-col-num" width="200">E</th>
<th class="t-col-num" width="200">F</th>
<th class="t-col-num" width="200">G</th>
<th class="t-col-num" width="200">H</th>
</tr>
<tr>
<th colspan="8" class="t-title">这里是标题内容</th>
</tr>
<tr>
<th class="t-row-title" width="200">C</th>
<th class="t-row-title" width="200">D</th>
<th class="t-row-title" width="200">E</th>
<th class="t-row-title" width="200">F</th>
<th class="t-row-title" width="200">G</th>
<th class="t-row-title" width="200">H</th>
</tr>
<tr>
<th class="t-row-title" width="200">列名3</th>
<th class="t-row-title" width="200">列名4</th>
<th class="t-row-title" width="200">列名5</th>
<th class="t-row-title" width="200">列名6</th>
<th class="t-row-title" width="200">列名7</th>
<th class="t-row-title" width="200">列名8</th>
</tr>
</table>
</div>
</div>
<div class="t_r_content" id="t_r_content" οnscrοll="aa()">
<table>
<tr>
<td width="200" class="bordertop">1</td>
<td width="200" class="bordertop">1</td>
<td width="200" class="bordertop">1</td>
<td width="200" class="bordertop">1</td>
<td width="200" class="bordertop">1</td>
<td width="200" class="bordertop">1</td>
</tr>
<tr>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>3</td>
<td>3</td>
<td>3</td>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td>4</td>
<td>4</td>
<td>4</td>
<td>4</td>
<td>4</td>
<td>4</td>
</tr>
<tr>
<td>5</td>
<td>5</td>
<td>5</td>
<td>5</td>
<td>5</td>
<td>5</td>
</tr>
<tr>
<td>6</td>
<td>6</td>
<td>6</td>
<td>6</td>
<td>6</td>
<td>6</td>
</tr>
<tr>
<td>7</td>
<td>7</td>
<td>7</td>
<td>7</td>
<td>7</td>
<td>7</td>
</tr>
<tr>
<td>8</td>
<td>8</td>
<td>8</td>
<td>8</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>9</td>
<td>9</td>
<td>9</td>
<td>9</td>
<td>9</td>
<td>9</td>
</tr>
<tr>
<td>10</td>
<td>10</td>
<td>10</td>
<td>10</td>
<td>10</td>
<td>10</td>
</tr>
<tr>
<td>11</td>
<td>11</td>
<td>11</td>
<td>11</td>
<td>11</td>
<td>11</td>
</tr>
<tr>
<td>12</td>
<td>12</td>
<td>12</td>
<td>12</td>
<td>12</td>
<td>12</td>
</tr>
<tr>
<td>13</td>
<td>13</td>
<td>13</td>
<td>13</td>
<td>13</td>
<td>13</td>
</tr>
<tr>
<td>14</td>
<td>14</td>
<td>14</td>
<td>14</td>
<td>14</td>
<td>14</td>
</tr>
<tr>
<td>15</td>
<td>15</td>
<td>15</td>
<td>15</td>
<td>15</td>
<td>15</td>
</tr>
<tr>
<td>16</td>
<td>16</td>
<td>16</td>
<td>16</td>
<td>16</td>
<td>16</td>
</tr>
<tr>
<td>17</td>
<td>17</td>
<td>17</td>
<td>17</td>
<td>17</td>
<td>17</td>
</tr>
<tr>
<td>18</td>
<td>18</td>
<td>18</td>
<td>18</td>
<td>18</td>
<td>18</td>
</tr>
<tr>
<td>19</td>
<td>19</td>
<td>19</td>
<td>19</td>
<td>19</td>
<td>19</td>
</tr>
<tr>
<td>20</td>
<td>20</td>
<td>20</td>
<td>20</td>
<td>20</td>
<td>20</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</body>
</html>