国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

基于IE與css的表格行頭與多層列頭鎖定方法

2019-11-17 04:18:07
字體:
供稿:網(wǎng)友

(左邊圖鎖定了行頭與列頭,右邊圖僅鎖定列頭)

有許多的鎖定或固定html表格表頭的方法和技術,本文介紹的是一個基于IE和CSS的簡易實現(xiàn)方法,基本思路為:使用div行級元素確定一個包含表格的區(qū)域,在區(qū)域滾動移動時定位非固定單元格的位置(top/left)。

1、確定表格區(qū)域

定義一個有邊框的div元素,并設置其overfloaw屬性為scroll,保證該區(qū)域恒有一個垂直與水平滾動條。

div#DivContainer
{
overflow: scroll; border: solid 1px gray;
}

在div中嵌入一個表格,設置collapse屬性為collapse,滿足單邊框(合并邊框)的外觀。


table
{
border-collapse: collapse;
}

2、單元格鎖定選擇器類

需要設計三種類型的鎖定單元格:垂直方向鎖定單元格(VLocked)、水平方向鎖定單元格(HLocked)及雙向鎖定單元格(Locked),而一般表格內(nèi)容單元格則設置其位置屬性position為relative,見如下css代碼:


td

{

position: relative; padding: 5px; border-top: solid 0px gray; border-bottom: solid 1px gray; border-left: solid 0px gray; border-right: solid 1px gray;

}

鎖定表格行頭時,要求行頭的單元格水平方不移動,即區(qū)域移動時重定位這些行頭單元格的left邊界值,見如下css代碼:

 

td.HLocked /* 水平方向鎖住單元格 */

{

z-index: 10; position: relative; left: exPRession(parentNode.parentNode.parentNode.parentNode.scrollLeft); background-color: #cccccc; text-align: center; border-top: solid 0px gray; border-bottom: solid 1px gray; border-left: solid 0px gray; border-right: solid 1px gray;

}

 

需要指出,表格td元素的parentNode元素是tr,tr.parentNode元素是tbody,tbody.parentNode元素是table,所以td.parentNode.parentNode.parentNode.parentNode是定制的div元素,即當前表格區(qū)域。

鎖定表格列頭時,需要考慮兩種情況單元格。一種是不鎖定行頭的單元格,此時只需要垂直方向不移動即可,見如下css代碼:

td.VLocked

{

z-index: 20; position: relative; top: expression(parentNode.parentNode.parentNode.parentNode.scrollTop); font-size: 10pt; color: black; background-color: #cccccc; text-align: center; border-top: solid 0px gray; border-bottom: solid 1px gray; border-left: solid 0px gray; border-right: solid 1px gray;

}

另一種是鎖定行頭單元格時,這些是行頭又是列頭的單元格必須雙向鎖定,見如下css代碼:

td.Locked

{

z-index: 30; position: relative; top: expression(parentNode.parentNode.parentNode.parentNode.scrollTop); left: expression(parentNode.parentNode.parentNode.parentNode.scrollLeft); font-size: 10pt; color: black; background-color: #cccccc; text-align: center; border-top: solid 0px gray; border-bottom: solid 1px gray; border-left: solid 0px gray; border-right: solid 1px gray;

}

 

還有兩點需要說明:

  1. 使用了z-index坐標,并且是Locked類選擇器的z-index值最大,即最靠近瀏覽者;
  2. aspx中使用時,需要刪除Visual Studio自動產(chǎn)生的<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">行。

 

下面是完整的css代碼和htm演示代碼,測試時需要建立一個IIS虛擬路徑,拷貝css文件和htm文件到該虛擬路徑中,然后通過瀏覽器瀏覽htm文件:

  1. div#DivContainer   
  2. {   
  3.     overflowscrollbordersolid 1px gray;   
  4. }   
  5. table    
  6. {   
  7.     border-collapsecollapse;    
  8. }   
  9. td    
  10. {   
  11.     positionrelativepadding5px;   
  12.     border-topsolid 0px grayborder-bottomsolid 1px grayborder-leftsolid 0px grayborder-rightsolid 1px gray;   
  13. }   
  14. td.Locked /* 水平與垂直方向鎖住單元格, 不隨鼠標或滾動條移動 */  
  15. {   
  16.     z-index30positionrelative;    
  17.     top: expression(parentNode.parentNode.parentNode.parentNode.scrollTop);    
  18.     left: expression(parentNode.parentNode.parentNode.parentNode.scrollLeft);    
  19.     background-color#cccccctext-aligncenter;    
  20.     border-topsolid 0px grayborder-bottomsolid 1px grayborder-leftsolid 0px grayborder-rightsolid 1px gray;   
  21. }   
  22. td.HLocked /* 水平方向鎖住單元格 */  
  23. {   
  24.     z-index10positionrelative; left: expression(parentNode.parentNode.parentNode.parentNode.scrollLeft);    
  25.     background-color#cccccctext-aligncenter;    
  26.     border-topsolid 0px grayborder-bottomsolid 1px grayborder-leftsolid 0px grayborder-rightsolid 1px gray;   
  27. }   
  28. td.VLocked /* 垂直方向鎖住單元格 */  
  29. {   
  30.     z-index20positionrelative; top: expression(parentNode.parentNode.parentNode.parentNode.scrollTop);    
  31.     background-color#cccccctext-aligncenter;    
  32.     border-topsolid 0px grayborder-bottomsolid 1px grayborder-leftsolid 0px grayborder-rightsolid 1px gray;   
  33. }  

 

  1. <html xmlns="http://www.w3.org/1999/xhtml" >  
  2. <head>  
  3.        
  4.     <title>多層表頭測試</title>  
  5. <link type="text/css" rel="Stylesheet" href="lockedheaders.css" mce_href="lockedheaders.css" />  
  6. <mce:style type="text/css"><!--   
  7.     tr { height: 26px; }   
  8.     td         { font-size: 10pt; text-align: right; }   
  9.     td.Locked  { font-size: 10pt; }   
  10.     td.HLocked { font-size: 10pt; }   
  11.     td.VLocked { font-size: 10pt; }   
  12.        
  13. --></mce:style><style type="text/css" mce_bogus="1">    tr { height: 26px; }   
  14.     td         { font-size: 10pt; text-align: right; }   
  15.     td.Locked  { font-size: 10pt; }   
  16.     td.HLocked { font-size: 10pt; }   
  17.     td.VLocked { font-size: 10pt; }   
  18.     </style>  
  19. </head>  
  20. <body>  
  21. <div id="DivContainer" style="width: 400px; height: 260px;">  
  22. <table id = "Report">  
  23.   <tr>  
  24.     <td class="Locked" colspan="4">Column1</td>  
  25.        
  26.     <td class="VLocked" rowspan="3">Column5</td>  
  27.     <td class="VLocked" rowspan="3">Column6</td>  
  28.     <td class="VLocked" rowspan="3">Column7</td>  
  29.     <td class="VLocked" rowspan="3">Column8</td>  
  30.   </tr>  
  31.   <tr>  
  32.     <td class="Locked" colspan="2">Column11</td>  
  33.     <td class="Locked" colspan="2">Column12</td>  
  34.   </tr>  
  35.   <tr>  
  36.     <td class="Locked">Column111</td>  
  37.     <td class="Locked">Column112</td>  
  38.     <td class="Locked">Column121</td>  
  39.     <td class="Locked">Column122</td>  
  40.   </tr>  
  41. <!--上面是表列頭部分 -->  
  42.   <tr>  
  43.     <td class="HLocked">Row01</td>  
  44.     <td class="HLocked">Row01A</td>  
  45.     <td class="HLocked">Row01B</td>  
  46.     <td class="HLocked">11</td>  
  47.        
  48.     <td style="text-align: center" mce_style="text-align: center">12</td>  
  49.     <td style="text-align: left" mce_style="text-align: left">13</td>  
  50.     <td style="text-align: right" mce_style="text-align: right">14</td>  
  51.     <td>15</td>  
  52.   </tr>  
  53.   <tr>  
  54.     <td class="HLocked">Row02</td>  
  55.     <td class="HLocked">Row02A</td>  
  56.     <td class="HLocked">Row02B</td>  
  57.     <td class="HLocked">21</td>  
  58.     <td>22</td>  
  59.     <td>23</td>  
  60.     <td>24</td>  
  61.     <td>25</td>  
  62.   </tr>  
  63.   <tr>  
  64.     <td class="HLocked">Row03</td>  
  65.     <td class="HLocked">Row03A</td>  
  66.     <td class="HLocked">Row03B</td>  
  67.     <td class="HLocked">31</td>  
  68.     <td>32</td>  
  69.     <td>33</td>  
  70.     <td>34</td>  
  71.     <td>35</td>  
  72.   </tr>  
  73.   <tr>  
  74.     <td class="HLocked">Row04</td>  
  75.     <td class="HLocked">Row04A</td>  
  76.     <td class="HLocked">Row04B</td>  
  77.     <td class="HLocked">41</td>  
  78.     <td>42</td>  
  79.     <td>43</td>  
  80.     <td>44</td>  
  81.     <td>45</td>  
  82.   </tr>  
  83.   <tr>  
  84.     <td class="HLocked">Row05</td>  
  85.     <td class="HLocked">Row05A</td>  
  86.     <td class="HLocked">Row05B</td>  
  87.     <td class="HLocked">51</td>  
  88.     <td>52</td>  
  89.     <td>53</td>  
  90.     <td>54</td>  
  91.     <td>55</td>  
  92.   </tr>  
  93.   <tr>  
  94.     <td class="HLocked">Row06</td>  
  95.     <td class="HLocked">Row06A</td>  
  96.     <td class="HLocked">Row06B</td>  
  97.     <td class="HLocked">61</td>  
  98.     <td>62</td>  
  99.     <td>63</td>  
  100.     <td>64</td>  
  101.     <td>65</td>  
  102.   </tr>  
  103.   <tr>  
  104.     <td class="HLocked">Row07</td>  
  105.     <td class="HLocked">Row07A</td>  
  106.     <td class="HLocked">Row07B</td>  
  107.     <td class="HLocked">71</td>  
  108.     <td>72</td>  
  109.     <td>73</td>  
  110.     <td>74</td>  
  111.     <td>75</td>  
  112.   </tr>  
  113.   <tr>  
  114.     <td class="HLocked">Row08</td>  
  115.     <td class="HLocked">Row08A</td>  
  116.     <td class="HLocked">Row08B</td>  
  117.     <td class="HLocked">81</td>  
  118.     <td>82</td>  
  119.     <td>83</td>  
  120.     <td>84</td>  
  121.     <td>85</td>  
  122.   </tr>  
  123.   <tr>  
  124.     <td class="HLocked">Row09</td>  
  125.     <td class="HLocked">Row09A</td>  
  126.     <td class="HLocked">Row09B</td>  
  127.     <td class="HLocked">91</td>  
  128.     <td>92</td>  
  129.     <td>93</td>  
  130.     <td>94</td>  
  131.     <td>95</td>  
  132.   </tr>  
  133. </table>  
  134. </div>  
  135. </body>  
  136. </html>

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 临夏市| 互助| 盐池县| 宣化县| 纳雍县| 两当县| 黑龙江省| 光山县| 迁安市| 饶平县| 贵港市| 山阳县| 库车县| 治多县| 库尔勒市| 泸州市| 双城市| 紫金县| 崇仁县| 靖州| 都昌县| 柞水县| 时尚| 上杭县| 邻水| 安塞县| 偏关县| 卢湾区| 周宁县| 桂东县| 钦州市| 东阿县| 西畴县| 阜康市| 晋城| 城固县| 延庆县| 凌云县| 临泽县| 和龙市| 临洮县|