设为首页收藏本站
天天打卡

 找回密码
 立即注册
搜索
查看: 111|回复: 14

5种做法实现table表格中的斜线表头效果

[复制链接]

4

主题

69

回帖

215

积分

中级会员

积分
215
发表于 2024-4-20 10:31:52 | 显示全部楼层 |阅读模式
table表格,这个东西大家肯定都不陌生,代码中我们时常都能碰到,那么给table加一个斜线的表头有时是很有必要的,但是到底该怎么实现这种效果呢?
我总结了以下几种方法:
1、最最最简单的做法
直接去找公司的UI,让她做一张图片,作为背景图片放到这里,然后撑满就可以了。是不是很简单!!!
2、相当简单的做法
其实了解css3的朋友,一看到这个效果,脑子中瞬间出现的就是transform这个属性,是的,这个确实可以,也很简单,就是有一个问题要注意浏览器的兼容性问题,大家心里要要时刻保持着危机意识(IE还存在呢),如果你们公司的要求是只兼容chrome,那么,这个方法很适合你。
3、十分简单的做法
  1. .biaoTou {
  2.                 border-top: 200px #199fff solid; /*上边框宽度等于表格第一行行高*/  
  3.                 border-left: 200px #ff8838 solid; /*左边框宽度等于表格第一行第一格宽度*/  
  4.             }

  5. <td width="200">
  6.     <div class="biaoTou">
  7.                         
  8.     </div>
  9. </td>
复制代码
这种方法也很简单,按照上面的格式写下来就好了。但是这种写法有个明显的问题:这种其实就是利用两种颜色的不同的border划分表头的斜线的,斜线两边的颜色不能相同,如果是做一些促销活动之类的表格时可以用这种方法。但是如果我们需要斜线两边的颜色一样时,这种做法是不适用的。慎用。
4、很简单的做法
这种效果其实还可以用css3的另一个新的标签canvas。将其作为画布画一条斜线是一种十分简单的做法,就不详细解释了,但是也有一个问题,就是老生常谈的兼容性问题了,如果只是兼容chrome,你想怎么办都行(为什么我们公司一直要考虑可恶的IE,我也想只做兼容谷歌的项目啊)。
5、不简单的做法
那就是js做法了
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <HTML>  
  3. <HEAD>  
  4. <TITLE>斜线表头</TITLE>  
  5. <meta http-equiv="content-type" content="charset=gbk">  
  6. </HEAD>  
  7.   
  8. <body leftmargin=0 topmargin=0>  
  9.     <br>  
  10.     <div height="300">header</div>  
  11.     <hr>  
  12.     <TABLE border=0 bgcolor="000000" cellspacing="1" width=400  
  13.         style="margin-left: 100px;">  
  14.         <TR bgcolor="FFFFFF">  
  15.             <TD width="111" height="52"><table width="100%" height="100%"  
  16.                     border="0" cellpadding="0" cellspacing="0">  
  17.                     <tr>  
  18.                         <td id="td1"></td>  
  19.                         <td>成绩</td>  
  20.                     </tr>  
  21.                     <tr>  
  22.                         <td>姓名</td>  
  23.                         <td id="td2"></td>  
  24.                     </tr>  
  25.                 </table></TD>  
  26.             <TD width="81">数学</TD>  
  27.             <TD width="96">英语</TD>  
  28.             <TD width="99">C语言</TD>  
  29.         </TR>  
  30.         <TR bgcolor="FFFFFF">  
  31.             <TD>张三</TD>  
  32.             <TD>55</TD>  
  33.             <TD>66</TD>  
  34.             <TD>77</TD>  
  35.         </TR>  
  36.         <TR bgcolor="FFFFFF">  
  37.             <TD>李四</TD>  
  38.             <TD>99</TD>  
  39.             <TD>68</TD>  
  40.             <TD>71</TD>  
  41.         </TR>  
  42.         <TR bgcolor="FFFFFF">  
  43.             <TD>王五</TD>  
  44.             <TD>33</TD>  
  45.             <TD>44</TD>  
  46.             <TD>55</TD>  
  47.         </TR>  
  48.     </TABLE>  
  49.     <script type="text/javascript">  
  50.         function a(x, y, color) {  
  51.             document  
  52.                     .write("<img   border='0'   style='position:   absolute;   left:   "  
  53.                             + (x)  
  54.                             + ";   top:   "  
  55.                             + (y)  
  56.                             + ";background-color:   "  
  57.                             + color  
  58.                             + "'   src='px.gif'   width=1   height=1>")  
  59.         }  
  60.         function getTop(tdobj) {  
  61.             vParent = tdobj.offsetParent;  
  62.             t = tdobj.offsetTop;  
  63.             while (vParent.tagName.toUpperCase() != "BODY") {  
  64.                 t += vParent.offsetTop;  
  65.                 vParentvParent = vParent.offsetParent;  
  66.             }  
  67.             return t;  
  68.         }  
  69.   
  70.         function getLeft(tdobj) {  
  71.             vParent = tdobj.offsetParent;  
  72.             t = tdobj.offsetLeft;  
  73.             while (vParent.tagName.toUpperCase() != "BODY") {  
  74.                 t += vParent.offsetLeft;  
  75.                 vParentvParent = vParent.offsetParent;  
  76.             }  
  77.             return t;  
  78.         }  
  79.         function line(x1, y1, x2, y2, color) {  
  80.             var tmp  
  81.             if (x1 >= x2) {  
  82.                 tmp = x1;  
  83.                 x1 = x2;  
  84.                 x2 = tmp;  
  85.                 tmp = y1;  
  86.                 y1 = y2;  
  87.                 y2 = tmp;  
  88.             }  
  89.             for ( var i = x1; i <= x2; i++) {  
  90.                 x = i;  
  91.                 y = (y2 - y1) / (x2 - x1) * (x - x1) + y1;  
  92.                 a(x, y, color);  
  93.             }  
  94.         }  
  95.         //line(1,1,100,100,"000000");   
  96.         line(getLeft(td1), getTop(td1), getLeft(td1) + td1.offsetWidth,  
  97.                 getTop(td1) + td1.offsetHeight, '#000000');  
  98.         line(getLeft(td2), getTop(td2), getLeft(td2) + td2.offsetWidth,  
  99.                 getTop(td2) + td2.offsetHeight, '#000000');  
  100.     </script>  
  101. </BODY>  
  102. </HTML>
复制代码
好了,五种方法都说完了,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

0

主题

50

回帖

99

积分

注册会员

积分
99
发表于 2024-4-27 22:00:09 | 显示全部楼层
保持尊重和礼貌对待其他成员是必要的。

0

主题

59

回帖

119

积分

注册会员

积分
119
发表于 2024-4-30 03:55:44 | 显示全部楼层
顶一个,观点非常中肯!

0

主题

52

回帖

103

积分

注册会员

积分
103
发表于 2024-4-30 23:58:28 | 显示全部楼层
顶一个,观点非常中肯!

2

主题

54

回帖

154

积分

注册会员

积分
154
发表于 2024-5-14 22:12:26 | 显示全部楼层
同意你的观点,我们有共鸣。

1

主题

38

回帖

111

积分

注册会员

积分
111

热心会员付费会员

发表于 2024-6-18 02:21:44 | 显示全部楼层
谢谢你的提醒,我会注意的。

2

主题

58

回帖

162

积分

注册会员

积分
162
发表于 2024-6-23 09:07:46 | 显示全部楼层
已测试,非常不错
  • 打卡等级:无名新人
  • 打卡总天数:1
  • 打卡月天数:0
  • 打卡总奖励:14
  • 最近打卡:2024-04-23 13:38:52

1

主题

43

回帖

123

积分

注册会员

积分
123
发表于 2024-7-31 01:03:32 | 显示全部楼层
我们一起努力,共同解决问题吧。

1

主题

32

回帖

88

积分

注册会员

积分
88
发表于 2024-9-2 05:50:06 | 显示全部楼层
说得太好了,完全同意!

3

主题

64

回帖

196

积分

注册会员

积分
196
发表于 2024-9-12 18:39:38 | 显示全部楼层
666666666666666666
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|爱云论坛 - d.taiji888.cn - 技术学习 免费资源分享 ( 蜀ICP备2022010826号 )|天天打卡

GMT+8, 2024-11-24 09:21 , Processed in 0.091767 second(s), 27 queries .

Powered by i云网络 Licensed

© 2023-2028 正版授权

快速回复 返回顶部 返回列表