htmltable表格斜线表头的实现⽅法总汇
在html中给table加⼀个斜线的表头有时是很有必要的,但是到底该怎么实现这种效果呢?总结了以下⼏种⽅法:
1、UI背景图实现
直接去公司的UI,让她做⼀张图⽚,作为背景图⽚放到这⾥,然后撑满就可以了。是不是很简单
2、 css3中transform属性
其实了解css3的朋友,⼀看到这个效果,脑⼦中瞬间出现的就是transform这个属性,是的,这个确实可以,也很简单,就是有⼀个问题要注意浏览器的兼容性问题,⼤家⼼⾥要要时刻保持着危机意识(IE还存在呢),如果你们公司的要求是只兼容chrome,那么,这个⽅法很适合你。
3、利⽤border-top和border-left
这种⽅法也很简单,但是这种写法有个明显的问题:这种其实就是利⽤两种颜⾊的不同的border划分表头的斜线的,斜线两边的颜⾊不能相同,如果是做⼀些促销活动之类的表格时可以⽤这种⽅法。但是如果我们需要斜线两边的颜⾊⼀样时,这种做法是不适⽤的。
css:
1 table {
2 border-collapse: collapse;
3 border: 1px #eee solid;
4 width: 80%;
5 min-width: 300px;
6 margin: 0 auto;
7 }
8 th{
9 border: 1px solid #ddd;
10 text-align: center;
11 height: 100px;
12 }
13 .th_head{/*宽⾼100px,100px*/
14 width:200px;
15 position: relative;
16 }
17 .box{
18 border-top: 100px #ff0 solid; /*上边框宽度等于表格第⼀⾏⾏⾼*/
19 border-left: 200px #0ff solid; /*左边框宽度等于表格第⼀⾏第⼀格宽度*/
20 }
21 .a,.b{
22 font-style: normal;
23 display: block;
24 position: absolute;
25 width: 200px;
26 height: 50px;
27 line-height: 50px;
28 }
29 .a{
30 top: 0px; left: 0px;
31 }
32 .b{
33 top: 50px; left: 0px;
34 }
35 </style>
36 html:
37
38 <table>
39 <tr>
40 <th class="th_head">
41 <div class="box">
42 <em class="a">A</em>
43 <em class="b">B</em>
44 </div>
45 </th>
46 <th>C</th>
47 </tr>
48 </table>
4、css3的canvas
这种效果其实还可以⽤css3的另⼀个新的标签canvas。将其作为画布画⼀条斜线是⼀种⼗分简单的做法,就不详细解释了,但是也有⼀个问题,就是⽼⽣常谈的兼容性问题了,如果只是兼容chrome,你想怎么办都⾏(为什么我们公司⼀直要考虑可恶的IE,我也想只做兼容⾕歌的项⽬啊)。
5、js的实现
1 <TABLE border=0 bgcolor="000000" cellspacing="1" width=400
2 >
3 <TR bgcolor="FFFFFF">
4 <TD width="111" height="52"><table width="100%" height="100%"
5 border="0" cellpadding="0" cellspacing="0">
6 <tr>
7 <td id="td1"></td>
8 <td>成绩</td>
9 </tr>
10 <tr>
11 <td>姓名</td>
12 <td id="td2"></td>
13 </tr>
14 </table></TD>
15 <TD width="81">数学</TD>
16 <TD width="96">英语</TD>
17 <TD width="99">C语⾔</TD>
18 </TR>
19 <TR bgcolor="FFFFFF">
20 <TD>张三</TD>
21 <TD>55</TD>
22 <TD>66</TD>
23 <TD>77</TD>
24 </TR>
25 <TR bgcolor="FFFFFF">
26 <TD>李四</TD>
27 <TD>99</TD>
28 <TD>68</TD>
29 <TD>71</TD>
30 </TR>
31 <TR bgcolor="FFFFFF">
32 <TD>王五</TD>
33 <TD>33</TD>
34 <TD>44</TD>
35 <TD>55</TD>
36 </TR>
37 </TABLE>
38 <script type="text/javascript">
39 function a(x, y, color) {
40 document
41 .write("<img border='0' style='position: absolute; left: "
42 + (x)
43 + "; top: "
44 + (y)
45 + "; color: rgb(0, 136, 0);">"' src='px.gif' width=1 height=1>")
46 }
html网页设计 table 47 function getTop(tdobj) {
48 vParent = tdobj.offsetParent;
49 t = tdobj.offsetTop;
50while (UpperCase() != "BODY") {
51 t += vParent.offsetTop;
52 vParentvParent = vParent.offsetParent;
53 }
54return t;
55 }
56
57 function getLeft(tdobj) {
58 vParent = tdobj.offsetParent;
59 t = tdobj.offsetLeft;
60while (UpperCase() != "BODY") {
61 t += vParent.offsetLeft;
62 vParentvParent = vParent.offsetParent;
63 }
64return t;
65 }
66 function line(x1, y1, x2, y2, color) {
67var tmp
68if (x1 >= x2) {
69 tmp = x1;
70 x1 = x2;
71 x2 = tmp;
72 tmp = y1;
73 y1 = y2;
74 y2 = tmp;
75 }
76for ( var i = x1; i <= x2; i++) {
77 x = i;
78 y = (y2 - y1) / (x2 - x1) * (x - x1) + y1;
79 a(x, y, color);
80 }
81 }
82//line(1,1,100,100,"000000");
83 line(getLeft(td1), getTop(td1), getLeft(td1) + td1.offsetWidth,
84 getTop(td1) + td1.offsetHeight, '#000000');
85 line(getLeft(td2), getTop(td2), getLeft(td2) + td2.offsetWidth,
86 getTop(td2) + td2.offsetHeight, '#000000');
87 </script>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论