5种做法实现table表格中的斜线表头效果(HTML+CSS+JS+Canvas+SVG)

news2024/9/28 21:19:53

table表格,这个东西大家肯定都不陌生,代码中我们时常都能碰到,那么给table加一个斜线的表头有时是很有必要的,但是到底该怎么实现这种效果呢?

我总结了以下几种方法:

1、最最最简单的做法

直接去找公司的UI,让她做一张图片,作为背景图片放到这里,然后撑满就可以了。是不是很简单!!!

2、相当简单的做法

其实了解css3的朋友,一看到这个效果,脑子中瞬间出现的就是transform这个属性,是的,这个确实可以,也很简单,就是有一个问题要注意浏览器的兼容性问题,大家心里要要时刻保持着危机意识(IE还存在呢),如果你们公司的要求是只兼容chrome,那么,这个方法很适合你。

3、十分简单的做法

.biaoTou {

    border-top: 200px #199fff solid; /*上边框宽度等于表格第一行行高*/

    border-left: 200px #ff8838 solid; /*左边框宽度等于表格第一行第一格宽度*/

}

 <td width="200">
    <div class="biaoTou">
    </div>
</td

这种方法也很简单,按照上面的格式写下来就好了。但是这种写法有个明显的问题:这种其实就是利用两种颜色的不同的border划分表头的斜线的,斜线两边的颜色不能相同,如果是做一些促销活动之类的表格时可以用这种方法。但是如果我们需要斜线两边的颜色一样时,这种做法是不适用的。慎用。

4、很简单的做法

这种效果其实还可以用css的另一个新的标签svg。将其作为画布画一条斜线是一种十分简单的做法,详情参见教程:

html表格中加入斜线,使用css给table表格表头单元格添加斜线

点击查看html表格中加入斜线
 

5、不简单的做法

那就是js做法了

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 

<HTML> 

<HEAD> 

<TITLE>斜线表头</TITLE> 

<meta http-equiv="content-type" content="charset=gbk"> 

</HEAD> 

<body leftmargin=0 topmargin=0> 

    <br> 

    <div height="300">header</div> 

    <hr> 

    <TABLE border=0 bgcolor="000000" cellspacing="1" width=400 

        style="margin-left: 100px;"> 

        <TR bgcolor="FFFFFF"> 

            <TD width="111" height="52"><table width="100%" height="100%" 

                    border="0" cellpadding="0" cellspacing="0"> 

                    <tr> 

                        <td id="td1"></td> 

                        <td>成绩</td> 

                    </tr> 

                    <tr> 

                        <td>姓名</td> 

                        <td id="td2"></td> 

                    </tr> 

                </table></TD> 

            <TD width="81">数学</TD>  

            <TD width="96">英语</TD> 

            <TD width="99">C语言</TD> 

        </TR> 

        <TR bgcolor="FFFFFF"> 

            <TD>张三</TD> 

            <TD>55</TD> 

            <TD>66</TD> 

            <TD>77</TD> 

        </TR> 

        <TR bgcolor="FFFFFF"> 

            <TD>李四</TD> 

            <TD>99</TD> 

            <TD>68</TD> 

            <TD>71</TD> 

        </TR> 

        <TR bgcolor="FFFFFF"> 

            <TD>王五</TD> 

            <TD>33</TD> 

            <TD>44</TD> 

            <TD>55</TD> 

        </TR> 

    </TABLE> 

    <script type="text/javascript"> 

        function a(x, y, color) { 

            document 

                    .write("<img   border='0'   style='position:   absolute;   left:   " 

                            + (x) 

                            + ";   top:   " 

                            + (y) 

                            + ";background-color:   " 

                            + color 

                            + "'   src='px.gif'   width=1   height=1>") 

        } 

        function getTop(tdobj) { 

            vParent = tdobj.offsetParent; 

            t = tdobj.offsetTop; 

            while (vParent.tagName.toUpperCase() != "BODY") { 

                t += vParent.offsetTop; 

                vParentvParent = vParent.offsetParent; 

            } 

            return t; 

        } 

 

        function getLeft(tdobj) { 

            vParent = tdobj.offsetParent; 

            t = tdobj.offsetLeft; 

            while (vParent.tagName.toUpperCase() != "BODY") { 

                t += vParent.offsetLeft; 

                vParentvParent = vParent.offsetParent; 

            } 

            return t; 

        } 

        function line(x1, y1, x2, y2, color) { 

            var tmp 

            if (x1 >= x2) { 

                tmp = x1; 

                x1 = x2; 

                x2 = tmp; 

                tmp = y1; 

                y1 = y2; 

                y2 = tmp; 

            } 

            for ( var i = x1; i <= x2; i++) { 

                x = i; 

                y = (y2 - y1) / (x2 - x1) * (x - x1) + y1; 

                a(x, y, color); 

            } 

        } 

        //line(1,1,100,100,"000000");  

        line(getLeft(td1), getTop(td1), getLeft(td1) + td1.offsetWidth, 

                getTop(td1) + td1.offsetHeight, '#000000'); 

        line(getLeft(td2), getTop(td2), getLeft(td2) + td2.offsetWidth, 

                getTop(td2) + td2.offsetHeight, '#000000'); 

    </script> 

</BODY> 

</HTML>

好了,五种方法都说完了,希望可以对大家有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/906665.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电脑图纸怎么加密?图纸加密软件有哪些?

对于企业来说&#xff0c;图纸的重要性是不言而喻的&#xff0c;为了避免图纸泄露&#xff0c;我们需要将图纸加密保护。那么电脑图纸该怎么加密呢&#xff1f;下面我们就来看一下。 图纸加密会带来哪些好处&#xff1f; 保护企业利益 为图纸加密可以有效地保护知识产权&…

Openlayers 教程 - 以单位米为半径,绘制圆形图形要素

Openlayers 教程 - 以单位米为半径&#xff0c;绘制圆形图形要素 核心代码完整代码&#xff1a;在线示例 在以往的项目维护中&#xff0c;出现一个问题&#xff0c;使用最新高清底图发现&#xff0c;设置地图最大等级&#xff08;21级&#xff09;之后&#xff0c;地图虽然可以…

Steam搬砖项目:最长久稳定的副业!

项目应该大家都有听说话&#xff0c;但是细节问题&#xff0c;如何操作可能有些不是很清楚&#xff0c;今天在这里简单分享一下。 这个Steam搬砖项目主要赚钱汇率差和价值差&#xff0c;是一个细分领取的小项目。 不用引流&#xff0c;时间也是比较自由的&#xff0c;你可以兼…

vue 可拖拽可缩放 vue-draggable-resizable 组件常用总结

特征 没有依赖 使用可拖动&#xff0c;可调整大小或两者兼备定义用于调整大小的句柄限制大小和移动到父元素或自定义选择器将元素捕捉到自定义网格将拖动限制为垂直或水平轴保持纵横比启用触控功能使用自己的样式为句柄提供自己的样式 安装和基本用法 npm install --save vue-d…

【BASH】回顾与知识点梳理(三十七)

【BASH】回顾与知识点梳理 三十七 三十七. 基础系统设定与备份策略37.1 系统基本设定网络设定 (手动设定与 DHCP 自动取得)手动设定 IP 网络参数(nmcli)自动取得 IP 参数(dhcp)修改主机名(hostnamectl) 37.2 日期与时间设定时区的显示与设定时间的调整用 ntpdate 手动网络校时 …

Istio入门体验系列——基于Istio的灰度发布实践

导言&#xff1a;灰度发布是指在项目迭代的过程中用平滑过渡的方式进行发布。灰度发布可以保证整体系统的稳定性&#xff0c;在初始发布的时候就可以发现、调整问题&#xff0c;以保证其影响度。作为Istio体验系列的第一站&#xff0c;本文基于Istio的流量治理机制&#xff0c;…

MyBatis的基本入门及Idea搭建MyBatis坏境且如何实现简单的增删改查(CRUD)---详细介绍

一&#xff0c;MaBatis是什么&#xff1f; 首先是一个开源的Java持久化框架&#xff0c;它可以帮助开发人员简化数据库访问的过程并提供了一种将SQL语句与Java代码进行解耦的方式&#xff0c;使得开发人员可以更加灵活地进行数据库操作。 1.1 Mabatis 受欢迎的点 MyBatis不仅是…

玄而又玄——我亲历的三大总线

总线是计算机系统中的桥梁和公路。对于要学习计算机系统的人来说&#xff0c;如果不理解总线&#xff0c;那么很多认知就没办法落到实处&#xff0c;想不清两样东西是如何连接起来&#xff0c;数据是如何从一点到另一点的。 最近两三年&#xff0c;做了比较多的底层开发&#x…

Scratch 之 创作小技巧 -- 让触碰效果更丝滑

今天小技巧的主题是——丝滑 a.让触碰效果更丝滑 ——非线性放大 相信大家&#xff0c;做游戏时都会有一开始按键吧&#xff0c;把鼠标放上去&#xff0c;这个按键就会有相应的变化&#xff0c;如放大&#xff0c;作为初学者&#xff0c;这段的代码可能是这样↓ 虽然看起来挺…

解析大规模开发:提升企业级开发效率与质量,加速创新

在数字化转型的大环境下&#xff0c;越来越多的企业依赖软件来驱动业务和创新。然而&#xff0c;随着开发规模日益庞大&#xff0c;如何更好地提升研发效能&#xff0c;从而塑造更强大的竞争力&#xff0c;已然成为众多企业亟待解决的共同难题。 作为国内领先的DevSecOps提供商…

凉而不冷 柔而不弱 三菱重工海尔舒适风科技助您整夜安眠

古人云&#xff1a;安寝乃人生乐事。可随着夏天的到来&#xff0c;昼长夜短&#xff0c;家里的老人、儿童、父母都存在不同的入睡苦恼。对于儿童来说&#xff0c;空调温度调的太低容易踢被子着凉&#xff0c;温度调的高又怕孩子满头大汗&#xff1b;父母自身也会因为半夜帮孩子…

盛元广通高校实验室开放预约与综合管理系统LIMS

系统概述&#xff1a; 高校实验室涉及到的课程、老师、学生多&#xff0c;管理起来费时费力&#xff0c;盛元广通高校实验室开放预约与综合管理系统LIMS提供简单易用的账号管理、实验室管理、课程管理、实验项目管理、实验时间设定&#xff1b;为学生提供简单易用的自主实验选…

使用 NBAR(基于网络的应用程序识别) 进行应用流量分析

识别和分类网络应用程序是有效管理网络带宽的关键。通过对网络流量进行分类&#xff0c;管理员可以根据企业的需要可视化、组织和确定网络流量的优先级。通过识别和分类网络流量&#xff0c;网络管理员可以有效地应用 QoS 策略&#xff0c;从而实现优化的网络带宽性能。 什么是…

docker 安装oracle19c linux命令执行sql

docker安装oracle # 下载镜像 19.3.0.0.0 docker pull registry.cn-hangzhou.aliyuncs.com/laowu/oracle:19c # 创建文件 mkdir -p /home/mymount/oracle19c/oradata # 授权&#xff0c;不授权会导致后面安装失败 chmod 777 /home/mymount/oracle19c/oradatadocker run -d \ …

0基础学习VR全景平台篇 第88篇:智慧眼-成员管理

一、功能说明 成员管理&#xff0c;是指管理智慧眼项目的成员&#xff0c;拥有相关权限的人可以进行添加成员、分配成员角色、设置成员分类、修改成员以及删除成员五项操作。但是仅限于管理自己的下级成员&#xff0c;上级成员无权管理。 二、前台操作页面 登录智慧眼后台操…

JS中如何区分变量是数组还是对象

总结&#xff1a; 这里提供三种方法&#xff1a; var arr[] var arr2{}1、constructor:数组的constructor是function Array(){};对象的constructor是function Object(){}2、instanceof&#xff1a;数组 instanceof Array&#xff1a;为true;对象 instanceof Array: 为false;3、…

ICASSP 2023说话人识别方向论文合集

今年入选 ICASSP 2023 的论文中&#xff0c;说话人识别&#xff08;声纹识别&#xff09;方向约有64篇&#xff0c;初步划分为Speaker Verification&#xff08;31篇&#xff09;、Speaker Recognition&#xff08;9篇&#xff09;、Speaker Diarization&#xff08;17篇&#…

GuLi商城-前端基础Vue指令-单向绑定双向绑定

什么是指令? 指令 (Directives) 是带有 v- 前缀的特殊特性。 指令特性的预期值是:单个 JavaScript 表达式。 指令的职责是&#xff0c;当表达式的值改变时&#xff0c;将其产生的连带影响&#xff0c;响应式地作用于DOM 例如我们在入门案例中的 v-on&#xff0c;代表绑定事…

IO多路复用(poll:与select类似,当监测的文件描述符有一个或多个就绪时,执行对应的IO操作

使用poll实现TCP循环服务器接收客户端消息并打印 服务器 客户端 写一个makefile方便使用 结果 笔记

611. 有效三角形的个数

611. 有效三角形的个数 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a; 原题链接&#xff1a; 611. 有效三角形的个数 https://leetcode.cn/problems/valid-triangle-number/description/ 完成情况&#xff1a; 解题思路&#xff1a; …