Html Table表格編輯(添加刪除行,單元格)


項目中一個新的需求,需要用js來編輯一個表格,包括添加一行,刪除一行,添加一個單元格,刪除一個單元格

注:示例代碼不包括刪除列和添加列

下面是js

  1     <script>
  2         function addover(div) {
  3             $(div).html("+");
  4         }
  5         function addout(div) {
  6             $(div).html("&nbsp;");
  7         }
  8         function cutover(div) {
  9             $(div).html("-");
 10         }
 11         function cutout(div) {
 12             $(div).html("&nbsp;");
 13         }
 14         //添加類別
 15         function typeAdd(div) {
 16             var tr = $(div).parents("tr"); //獲取當前行的Tr
 17             /*設置月份行數+1*/
 18             //findFather(tr);
 19             var monthtd = findFather(tr); //獲取當前行的月份TD
 20             var monthtdSpan = monthtd.attr("rowspan"); //獲取當前行的月份的TD數
 21             monthtd.attr("rowspan", parseInt(monthtdSpan) + 1); //月份的TD數+1
 22             /*添加一行空行*/
 23             var newtr = document.createElement("tr");
 24             var newtrHtml = '<td rowspan="1">' +
 25                         '<div class="typeadd" onmouseover="addover(this)" onclick="typeAdd(this)" onmouseout="addout(this)">&nbsp;</div>' +
 26                         '<div class="typename">無</div>' +
 27                         '<div class="typecut"  onmouseover="cutover(this)" onclick="typeCut(this)" onmouseout="cutout(this)">&nbsp;</div>' +
 28                     '</td>' +
 29                     '<td>' +
 30                         '<div class="contentadd" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>' +
 31                         '<div class="content">無</div>' +
 32                         '<div class="contentcut" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>' +
 33                     '</td>' +
 34                     '<td>' +
 35                         '<div class="contentadd_" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>' +
 36                         '<div class="content_">無</div>' +
 37                         '<div class="contentcut_" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>' +
 38                     '</td>';
 39             $(newtr).html(newtrHtml);
 40             tr = findNextFather(tr);
 41             $(newtr).insertBefore(tr);
 42         }
 43         //類別移除
 44         function typeCut(div) {
 45             if (!confirm("移除此單元會導致后續單元全部移除,是否移除?")) {
 46                 return false;
 47             }
 48             var tr = $(div).parents("tr"); //獲取當前行的Tr
 49             var firstTd = tr.find("td").eq(0);
 50             //如果沒有月份列,則移除
 51             if (firstTd.html().indexOf("月份") == -1) {
 52                 var rows = parseInt(firstTd.attr("rowspan"));
 53                 for (var i = 1; i < rows; i++) {
 54                     tr.next().remove();
 55                 }
 56                 var ftd = $(findFather(tr));
 57                 //alert(ftd.attr("rowspan"));
 58                 var frows = parseInt(ftd.attr("rowspan")) - rows;
 59                 //alert(frows);
 60                 ftd.attr("rowspan", frows);
 61                 tr.remove();
 62             } else {
 63                 //如果有月份列,則提取月份列,添加到下一個
 64                 var secondTd = tr.find("td").eq(1);
 65                 var frows = parseInt(firstTd.attr("rowspan"));//月份行數
 66                 var rows = parseInt(secondTd.attr("rowspan")); //類行數
 67                 if (frows == rows) {
 68                     alert("次類為當月唯一類別,無法刪除");
 69                 } else {
 70                     var newfirtstTd = firstTd;
 71                     var nextTr = findtypeFatherNext(tr);
 72                     //alert(nextTr.html());
 73                     var nextTr_firstTd = $(nextTr).find("td").eq(0);
 74                     //alert(nextTr_firstTd.html());
 75                     $(newfirtstTd).insertBefore(nextTr_firstTd);
 76                     newfirtstTd.attr("rowspan", frows - rows);
 77                     for (var i = 1; i < rows; i++) {
 78                         tr.next().remove()
 79                     }
 80                     tr.remove();
 81                 }
 82             }
 83         }
 84         //添加計划
 85         function contentAdd(div) {
 86             var tr = $(div).parents("tr"); //獲取當前行的Tr
 87             /*設置月份行數+1*/
 88             var monthtd = findFather(tr); //獲取當前行的月份TD
 89             var monthtdSpan = monthtd.attr("rowspan"); //獲取當前行的月份的TD數
 90             monthtd.attr("rowspan", parseInt(monthtdSpan) + 1); //月份的TD數+1
 91             /*設置類型行數+1*/
 92             var typetd = findtypeFather(tr);
 93             var typetdSpan = typetd.attr("rowspan"); //獲取當前行的類型的TD數
 94             typetd.attr("rowspan", parseInt(typetdSpan) + 1); //類型的TD數+1
 95             /*添加一行空行*/
 96             var newtr = document.createElement("tr");
 97             var newtrHtml = '<td>' +
 98                         '<div class="contentadd" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>' +
 99                         '<div class="content">無</div>' +
100                         '<div class="contentcut" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>' +
101                     '</td>' +
102                     '<td>' +
103                         '<div class="contentadd_" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>' +
104                         '<div class="content_">無</div>' +
105                         '<div class="contentcut_" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>' +
106                     '</td>';
107             $(newtr).html(newtrHtml);            
108             $(newtr).insertAfter(tr);
109         }
110         //移除計划
111         function contentCut(div) {
112             var tr = $(div).parents("tr"); //獲取當前行的Tr
113             if (tr.find("td").eq(0).html().indexOf("typename") != -1) {
114                 alert("此單元無法移除,請移除上級單元");
115             } else if (tr.find("td").eq(0).html().indexOf("")==-1) {
116                 alert("此單元無法移除,請移除上級單元");
117             } else if (tr.find("td").eq(0).html().indexOf("月份") != -1) {
118                 alert("此單元無法移除,請移除上級單元");
119             } else {
120                 /*設置月份行數+1*/
121                 var monthtd = findFather(tr); //獲取當前行的月份TD
122                 var monthtdSpan = monthtd.attr("rowspan"); //獲取當前行的月份的TD數
123                 monthtd.attr("rowspan", parseInt(monthtdSpan) - 1); //月份的TD數+1
124                 /*設置類型行數+1*/
125                 var typetd = findtypeFather(tr);
126                 var typetdSpan = typetd.attr("rowspan"); //獲取當前行的類型的TD數
127                 typetd.attr("rowspan", parseInt(typetdSpan) - 1); //類型的TD數+1
128                 tr.remove();
129             }
130         }
131         
132         //遞歸獲取下一個目標TR
133         function findNextFather(tr) {
134             var tr = $(tr).next();
135             if (tr.html().indexOf("typename") != -1) {
136                 return tr;
137             } else if (tr.html().indexOf("月份") != -1) {
138                 return tr;
139             } else {
140                 return findNextFather(tr);
141             }
142         }
143         //遞歸獲取上一個月份列
144         function findFather(tr) {
145             //獲取當前TR下的第一個TD
146             var monthtd = tr.find("td").eq(0);
147             //如果不包含"月份"關鍵字
148             if (monthtd.html().indexOf("月份") == -1) {
149                 tr = $(tr).prev(); //向上推一個TR
150                 return findFather(tr);//傳入
151             } else {
152                 return monthtd;
153             }
154         }
155         //遞歸獲取上一個類型列
156         function findtypeFather(tr) {
157             //獲取當前TR下的第一個TD
158             var typetd = tr.find("td").eq(0);
159             if (typetd.html().indexOf("月份") != -1) {
160                 return tr.find("td").eq(1);
161             } else if (typetd.html().indexOf("typename") == -1) {
162                 tr = $(tr).prev(); //向上推一個TR
163                 return findtypeFather(tr); //傳入
164             } else {
165                 return typetd;
166             }
167         }
168         //遞歸獲取下一個類型列
169         function findtypeFatherNext(tr) {
170             //獲取當前TR下的第一個TD
171             tr = tr.next();
172             var typetd = tr.find("td").eq(0);
173             if (typetd.html().indexOf("typename") != -1) {
174                 return tr;
175             } else {
176                 return findtypeFatherNext(tr);
177             }
178         }
179     </script>

一下是HTML代碼

  1   <table class="FormTable">
  2         <thead>
  3             <tr>
  4                 <td style="width:10%">月份</td>
  5                 <td style="width:10%">類別</td>
  6                 <td style="width:40%">護理部</td>
  7                 <td style="width:40%">大科</td>
  8             </tr>
  9         </thead>            
 10         <tbody>
 11             <tr>
 12                     <td rowspan="1">一月份</td>
 13                     <td rowspan="1">
 14                         <div class="typeadd" onmouseover="addover(this)" onclick="typeAdd(this)" onmouseout="addout(this)">&nbsp;</div>
 15                         <div class="typename">無</div>
 16                         <div class="typecut"  onmouseover="cutover(this)" onclick="typeCut(this)" onmouseout="cutout(this)">&nbsp;</div>
 17                     </td>
 18                     <td>
 19                         <div class="contentadd" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
 20                         <div class="content">無</div>
 21                         <div class="contentcut" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
 22                     </td>
 23                     <td>
 24                         <div class="contentadd_" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
 25                         <div class="content_">無</div>
 26                         <div class="contentcut_" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
 27                     </td>
 28             </tr>
 29             <tr>
 30                     <td rowspan="1">二月份</td>
 31                     <td rowspan="1">
 32                         <div class="typeadd" onmouseover="addover(this)" onclick="typeAdd(this)" onmouseout="addout(this)">&nbsp;</div>
 33                         <div class="typename">無</div>
 34                         <div class="typecut"  onmouseover="cutover(this)" onclick="typeCut(this)" onmouseout="cutout(this)">&nbsp;</div>
 35                     </td>
 36                     <td>
 37                         <div class="contentadd" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
 38                         <div class="content">無</div>
 39                         <div class="contentcut" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
 40                     </td>
 41                     <td>
 42                         <div class="contentadd_" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
 43                         <div class="content_">無</div>
 44                         <div class="contentcut_" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
 45                     </td>
 46             </tr>
 47             <tr>
 48                     <td rowspan="1">三月份</td>
 49                     <td rowspan="1">
 50                         <div class="typeadd" onmouseover="addover(this)" onclick="typeAdd(this)" onmouseout="addout(this)">&nbsp;</div>
 51                         <div class="typename">無</div>
 52                         <div class="typecut"  onmouseover="cutover(this)" onclick="typeCut(this)" onmouseout="cutout(this)">&nbsp;</div>
 53                     </td>
 54                     <td>
 55                         <div class="contentadd" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
 56                         <div class="content">無</div>
 57                         <div class="contentcut" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
 58                     </td>
 59                     <td>
 60                         <div class="contentadd_" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
 61                         <div class="content_">無</div>
 62                         <div class="contentcut_" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
 63                     </td>
 64             </tr>
 65             <tr>
 66                     <td rowspan="1">四月份</td>
 67                     <td rowspan="1">
 68                         <div class="typeadd" onmouseover="addover(this)" onclick="typeAdd(this)" onmouseout="addout(this)">&nbsp;</div>
 69                         <div class="typename">無</div>
 70                         <div class="typecut"  onmouseover="cutover(this)" onclick="typeCut(this)" onmouseout="cutout(this)">&nbsp;</div>
 71                     </td>
 72                     <td>
 73                         <div class="contentadd" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
 74                         <div class="content">無</div>
 75                         <div class="contentcut" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
 76                     </td>
 77                     <td>
 78                         <div class="contentadd_" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
 79                         <div class="content_">無</div>
 80                         <div class="contentcut_" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
 81                     </td>
 82             </tr>
 83             <tr>
 84                     <td rowspan="1">五月份</td>
 85                     <td rowspan="1">
 86                         <div class="typeadd" onmouseover="addover(this)" onclick="typeAdd(this)" onmouseout="addout(this)">&nbsp;</div>
 87                         <div class="typename">無</div>
 88                         <div class="typecut"  onmouseover="cutover(this)" onclick="typeCut(this)" onmouseout="cutout(this)">&nbsp;</div>
 89                     </td>
 90                     <td>
 91                         <div class="contentadd" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
 92                         <div class="content">無</div>
 93                         <div class="contentcut" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
 94                     </td>
 95                     <td>
 96                         <div class="contentadd_" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
 97                         <div class="content_">無</div>
 98                         <div class="contentcut_" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
 99                     </td>
100             </tr>
101             <tr>
102                     <td rowspan="1">六月份</td>
103                     <td rowspan="1">
104                         <div class="typeadd" onmouseover="addover(this)" onclick="typeAdd(this)" onmouseout="addout(this)">&nbsp;</div>
105                         <div class="typename">無</div>
106                         <div class="typecut"  onmouseover="cutover(this)" onclick="typeCut(this)" onmouseout="cutout(this)">&nbsp;</div>
107                     </td>
108                     <td>
109                         <div class="contentadd" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
110                         <div class="content">無</div>
111                         <div class="contentcut" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
112                     </td>
113                     <td>
114                         <div class="contentadd_" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
115                         <div class="content_">無</div>
116                         <div class="contentcut_" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
117                     </td>
118             </tr>
119             <tr>
120                     <td rowspan="1">七月份</td>
121                     <td rowspan="1">
122                         <div class="typeadd" onmouseover="addover(this)" onclick="typeAdd(this)" onmouseout="addout(this)">&nbsp;</div>
123                         <div class="typename">無</div>
124                         <div class="typecut"  onmouseover="cutover(this)" onclick="typeCut(this)" onmouseout="cutout(this)">&nbsp;</div>
125                     </td>
126                     <td>
127                         <div class="contentadd" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
128                         <div class="content">無</div>
129                         <div class="contentcut" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
130                     </td>
131                     <td>
132                         <div class="contentadd_" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
133                         <div class="content_">無</div>
134                         <div class="contentcut_" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
135                     </td>
136             </tr>
137             <tr>
138                     <td rowspan="1">八月份</td>
139                     <td rowspan="1">
140                         <div class="typeadd" onmouseover="addover(this)" onclick="typeAdd(this)" onmouseout="addout(this)">&nbsp;</div>
141                         <div class="typename">無</div>
142                         <div class="typecut"  onmouseover="cutover(this)" onclick="typeCut(this)" onmouseout="cutout(this)">&nbsp;</div>
143                     </td>
144                     <td>
145                         <div class="contentadd" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
146                         <div class="content">無</div>
147                         <div class="contentcut" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
148                     </td>
149                     <td>
150                         <div class="contentadd_" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
151                         <div class="content_">無</div>
152                         <div class="contentcut_" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
153                     </td>
154             </tr>
155             <tr>
156                     <td rowspan="1">九月份</td>
157                     <td rowspan="1">
158                         <div class="typeadd" onmouseover="addover(this)" onclick="typeAdd(this)" onmouseout="addout(this)">&nbsp;</div>
159                         <div class="typename">無</div>
160                         <div class="typecut"  onmouseover="cutover(this)" onclick="typeCut(this)" onmouseout="cutout(this)">&nbsp;</div>
161                     </td>
162                     <td>
163                         <div class="contentadd" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
164                         <div class="content">無</div>
165                         <div class="contentcut" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
166                     </td>
167                     <td>
168                         <div class="contentadd_" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
169                         <div class="content_">無</div>
170                         <div class="contentcut_" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
171                     </td>
172             </tr>
173             <tr>
174                     <td rowspan="1">十月份</td>
175                     <td rowspan="1">
176                         <div class="typeadd" onmouseover="addover(this)" onclick="typeAdd(this)" onmouseout="addout(this)">&nbsp;</div>
177                         <div class="typename">無</div>
178                         <div class="typecut"  onmouseover="cutover(this)" onclick="typeCut(this)" onmouseout="cutout(this)">&nbsp;</div>
179                     </td>
180                     <td>
181                         <div class="contentadd" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
182                         <div class="content">無</div>
183                         <div class="contentcut" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
184                     </td>
185                     <td>
186                         <div class="contentadd_" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
187                         <div class="content_">無</div>
188                         <div class="contentcut_" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
189                     </td>
190             </tr>
191             <tr>
192                     <td rowspan="1">十一月份</td>
193                     <td rowspan="1">
194                         <div class="typeadd" onmouseover="addover(this)" onclick="typeAdd(this)" onmouseout="addout(this)">&nbsp;</div>
195                         <div class="typename">無</div>
196                         <div class="typecut"  onmouseover="cutover(this)" onclick="typeCut(this)" onmouseout="cutout(this)">&nbsp;</div>
197                     </td>
198                     <td>
199                         <div class="contentadd" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
200                         <div class="content">無</div>
201                         <div class="contentcut" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
202                     </td>
203                     <td>
204                         <div class="contentadd_" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
205                         <div class="content_">無</div>
206                         <div class="contentcut_" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
207                     </td>
208             </tr>
209             <tr>
210                     <td rowspan="1">十二月份</td>
211                     <td rowspan="1">
212                         <div class="typeadd" onmouseover="addover(this)" onclick="typeAdd(this)" onmouseout="addout(this)">&nbsp;</div>
213                         <div class="typename">無</div>
214                         <div class="typecut"  onmouseover="cutover(this)" onclick="typeCut(this)" onmouseout="cutout(this)">&nbsp;</div>
215                     </td>
216                     <td>
217                         <div class="contentadd" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
218                         <div class="content">無</div>
219                         <div class="contentcut" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
220                     </td>
221                     <td>
222                         <div class="contentadd_" onmouseover="addover(this)" onclick="contentAdd(this)" onmouseout="addout(this)">&nbsp;</div>
223                         <div class="content_">無</div>
224                         <div class="contentcut_" onmouseover="cutover(this)" onclick="contentCut(this)" onmouseout="cutout(this)">&nbsp;</div>
225                     </td>
226             </tr>
227         </tbody>
228     </table>

樣式:

 1         .typeadd
 2         {
 3             float:left;width:6%;
 4             }
 5         .typeadd:hover
 6         {
 7             background-color:#ccc;
 8             cursor:pointer;
 9             }
10         .typecut
11         {
12             float:left;width:6%;
13             }
14         .typecut:hover
15         {
16             background-color:#ccc;
17             cursor:pointer;
18             }
19         .contentadd
20         {
21             float:left;width:6%;
22             }
23         .contentadd:hover
24         {
25             background-color:#ccc;
26             cursor:pointer;
27             }
28         .contentcut
29         {
30             float:left;width:6%;
31             }
32         .contentcut:hover
33         {
34             background-color:#ccc;
35             cursor:pointer;
36             }
37         .contentadd_
38         {
39             float:left;width:6%;
40             }
41         .contentadd_:hover
42         {
43             background-color:#ccc;
44             cursor:pointer;
45             }
46         .contentcut_
47         {
48             float:left;width:6%;
49             }
50         .contentcut_:hover
51         {
52             background-color:#ccc;
53             cursor:pointer;
54             }
55         .typename
56         {
57             float:left;width: 88%;
58             }
59         .content
60         {
61             float:left;width: 88%;
62             }
63         .content_
64         {
65             float:left;width: 88%;
66             }

外鏈jquery1.7.1另外還有個外鏈css就不貼出來了

簡單的效果圖如下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM