首页 > 其他分享 >html实现原生table并设置表格边框的两种方式

html实现原生table并设置表格边框的两种方式

时间:2023-07-12 15:35:50浏览次数:53  
标签:collapse 表格 边框 html dfe6ec table border

虽然第三方表格插件多不胜数,但是很多场景还是需要用到原生<table>,掌握html原生table的实现方法,是前端开发的必备技能。例如:print-js打印、html2canvas生成图片等,用原生table可以规避很多问题。

首先,在写原生<table>之前,我们先认识一下 border-collapse 属性:

border-collapse 属性设置表格的边框是否被合并为一个单一的边框,还是像在标准的 HTML 中那样分开显示。

 

大多数情况下,我们要求表格的边框合并为单一边框,要实现这样的效果,有如下两种方式:

一、利用css属性 border-collapse: collapse设置边框

html部分:

<table style="width: 100%" border="1" cellspacing="1">
      <thead>
          <tr>
            <th rowspan="2">姓名</th>     <!-- rowspan代表单元格纵向合并 -->
            <th colspan="2">个人信息</th>  <!-- colspan代表单元格横向合并 -->
          </tr>
          <tr>
            <th>性别</th>
            <th>年龄</th>
          </tr>
      </thead>
      <tbody>
          <tr>
            <td>张三</td>
            <td>男</td>
            <td>20</td>
          </tr>
          <tr>
            <td>李四</td>
            <td>男</td>
            <td rowspan="2">30</td>
          </tr>
          <tr>
            <td>小红</td>
            <td>女</td>
          </tr>
      </tbody>
</table>
css部分:
table {
      border-collapse: collapse; //合并为一个单一的边框
      border-color: #dfe6ec; //边框颜色按实际自定义即可
}
thead tr th {
      background-color: #f8f8f9; //设置表格标题背景色
      padding: 6px;
      text-align: center;
}
tbody tr td {
      padding: 6px;
      text-align: center;
      height: 34px;//设置单元格最小高度
}
  二、手动设置td和table的边框: html部分:
<table style="width: 100%" border="0" cellspacing="0">
      <thead>
          <tr>
            <th rowspan="2">姓名</th>
            <th colspan="2">个人信息</th>
          </tr>
          <tr>
            <th>性别</th>
            <th>年龄</th>
          </tr>
      </thead>
      <tbody>
          <tr>
            <td>张三</td>
            <td>男</td>
            <td>20</td>
          </tr>
          <tr>
            <td>李四</td>
            <td>男</td>
            <td rowspan="2">30</td>
          </tr>
          <tr>
            <td>小红</td>
            <td>女</td>
          </tr>
      </tbody>
</table>

 

css部分:

table {
      border-collapse: separate;
      border-top: 1px solid #dfe6ec;
      border-left: 1px solid #dfe6ec;
    }
thead tr th {
      background-color: #f8f8f9;
      padding: 6px;
      text-align: center;
      border-bottom: 1px solid #dfe6ec;
      border-right: 1px solid #dfe6ec;
}
tbody tr td {
      padding: 6px;
      text-align: center;
      height: 34px;//设置单元格最小高度
      border-bottom: 1px solid #dfe6ec;
      border-right: 1px solid #dfe6ec;
}

 

以上一、二两种方式展示表格效果均如下:

在使用html2canvas生成<table>图片的时候,如果用方式一,会导致生成的图片表格边框过粗,效果如下:

而用方式二手动设置边框,生成的图片和网页显示的表格一致,如下图所示:

因此,生成图片等场景,推荐使用方式二手动设置表格边框的方式实现原生table.

 

 注:cellpadding与cellspacing的区别如下

cellpadding 属性规定单元边沿与单元内容之间的空间,以像素计。

cellspacing 属性规定单元之间的空间,以像素计。若不设置该属性,则其默认值为 cellspacing="2"。

 HTML5 不支持cellpadding与cellspacing属性,cellpadding可使用CSS 代替,设置td和th的内边距padding即可。

 

 

标签:collapse,表格,边框,html,dfe6ec,table,border
From: https://www.cnblogs.com/journey-blog/p/html-table.html

相关文章

  • CompletableFuture详解
    CompletableFuture前言CompletableFuture继承于java.util.concurrent.Future,它本身具备Future的所有特性,并且基于JDK1.8的流式编程以及Lambda表达式等实现一元操作符、异步性以及事件驱动编程模型,可以用来实现多线程的串行关系,并行关系,聚合关系。它的灵活性和更强大的功......
  • 直播网站源码,修改el-table滚动条样式
    直播网站源码,修改el-table滚动条样式原生滚动条修改方式: /*---滚动条公共样式---*/ /*定义滚动条高宽及背景高宽分别对应横竖滚动条的尺寸*/::-webkit-scrollbar{ width:8px; height:8px;} /*定义滚动条轨道内阴影+圆角*/::-webkit-scrollbar-track{ -webkit-......
  • 8款优秀的HTML5开发工具
    HTML5发展越来越受到重视,随着各大浏览器对HTML5技术支持的不断完善以及HTML5技术的不断成熟,未来HTML5必将改变我们创建Web应用程序的方式。今天这篇文章向大家推荐8款优秀的HTML5开发工具,帮助你更高效的编写HTML5应用。InitializrInitializr是制作HTML5网......
  • JVM(十)StringTable
    JVM(十)StringTable1String的基本特性String即字符串,通过一对引号""表示,String创建的方式主要有Strings="abc";//字面量的方式Strings=newString("abc");//类创建new方式String声明为final,不可以被继承String实现了Serializable接口,表示字符串是支持序列......
  • 1--HTML基础
    1.页面结构<!DOCTYPEhtml><html> <head> <metacharset="utf-8"/> <title></title> </head> <body> </body></html> 编码:charset=“gbk”;gbk2312,utf-8 2.常见标签2.1meta标签关键字&l......
  • Element-动态控制el-table的行的显示与隐藏
    <el-tableborderstripe:data="form.serialDateList"style="width:100%":row-class-name="rowClassName">//rowClassName<el-table-columntype="index"width="60"align="center"label=&......
  • django_filters/rest_framework/form.html的报错问题
    报错问题:django_filters/rest_framework/form.htm报错原因为:1没有装django_filters模块使用pip安装pipinstalldjango-filter2模块没有在配置文件中注册:将django_filters添加到installed_apps中INSTALLED_APPS=[...'django_filters',] ......
  • [GPT] 对于一个复杂的html文档而言,如何用 js 批量替换页面上的某些文字从A替换为B,前提
     原生:示例代码functionreplaceTextInDocument(node){if(node.nodeType===Node.TEXT_NODE){node.textContent=node.textContent.replace(/A/g,'B');}elseif(node.nodeType===Node.ELEMENT_NODE){for(vari=0;i<node.childNode......
  • nf_conntrack: table full, dropping packet
    参考:linux路由跟踪表满错误nf_conntrack:tablefull,droppingpacket原理解决方法说明ping,dmesg或者/var/log/messages日志中这个报错,说明服务器网络方面遇到了瓶颈。此时查看cat/proc/sys/net/netfilter/nf_conntrack_max和cat/proc/sys/net/netfilter/nf_conntra......
  • arptables
    arptables管理ARP包过滤规则表补充说明arptables命令用来设置、维护和检查Linux内核中的arp包过滤规则表。语法arptables(选项)选项-A:向规则链中追加规则;-D:从指定的链中删除规则;-l:向规则链中插入一条新的规则;-R:替换指定规则;-P:设置规则链的默认策略;-F:刷新指定规则链,......