首页 > 其他分享 >教你如何用原生css和html搭建一个好看的Table表格

教你如何用原生css和html搭建一个好看的Table表格

时间:2022-11-27 11:25:33浏览次数:42  
标签:表格 color tr nth html child Table 2n css

前言

大家在学习<table>标签的时候,可能还没有接触css,所以你做出来的表格可能是这样的:

table表格

或者是这样的:

学生成绩单

大家有想过自己做一个漂亮的表格吗?我知道大家在做项目的时候大概率会去当下流行的UI框架中找已经封装好的表格来使用,就像layui的表格:

Snipaste_2022-11-27_09-28-47

但大家真的考虑过如何写一个好看的表格吗?表格背景色的交替变化大家有考虑过吗?大家亲手实现过吗这可是博主面试字节跳动时候的面试题啊!(虽然失败告终,还是自己太菜)。这些都是非常重要的基础,这篇博文,跟着博主一起做一个好看的表格,拒绝使用框架。

标签架子

首先当然是先把标签架子写出来,就好比捏泥人一样,必先设置好钢丝骨架,后再用泥贴敷。这块比较简单,使用<table>的一系列标签。

<div class="plan_box">
    <table>
        <thead>
            <td class="head" style="width: 204px;">周计划</td>
            <td class="head" style="width: 176px;">全产业排名</td>
            <td class="head" style="width: 190px;">战区内排名</td>
            <td class="head">提交时间</td>
        </thead>
        <tbody>
            <tr>
                <td>第7周计划</td>
                <td>8</td>
                <td>9</td>
                <td>2022-11-27</td>
            </tr>
        </tbody>
    </table>
</div>

效果是这样的:

Snipaste_2022-11-27_10-20-36

样式表

很简陋对吧,我们用css来美化一下,首先就是基数行颜色和偶数行颜色不同。实现思路是使用nth-child(2n)nth-child(2n+1)来为奇数行和偶数行设置对应的背景颜色。话不多说,开始写:

.plan_box{
  //表格居中配置
  width: 871px;
  height: 400px;
  margin: 0 auto;
  transform: translateY(50%);
  //表格行交替色实现
  thead{
    tr:nth-child(2n+1){
      background-color: #FAFAFA;
    }
  }

  tbody{
    tr:nth-child(2n){
      background-color: #FAFAFA;
    }

    tr:nth-child(2n+1){
      background-color: #FFFFFF;
    }
  }
}

我们看看现在的效果:

Snipaste_2022-11-27_10-44-25

现在我们已经实现了基偶行颜色的变换,细心的同学可能发现单元格之间是有一定间隙的,我们使用css的border-spacing来处理,同时我们给表格设置行高以及字体样式:

.plan_box{
  //表格居中配置
  //width: 871px;
  //height: 400px;
  //margin: 0 auto;
  //表格行交替色实现
  overflow: hidden;
  table{
    border-spacing: 0;

    thead{
      tr{
        &:nth-child(2n+1){
          background-color: #FAFAFA;
        }
      }
    }
    //表格行通用设置
    tr{
      height: 40px;
      font-size: 14px;
      color: #666666;
      line-height: 14px;
      font-weight: 400;
      &:nth-child(2n){
        background-color: #FAFAFA;
      }
    }
    //表头样式设置
    .head{
      font-size: 14px;
      color: #666666;
      line-height: 14px;
      font-weight: 600;
    }
  }
}

编译后的css

.plan_box {
  overflow: hidden;
}
.plan_box table {
  border-spacing: 0;
}
.plan_box table thead tr:nth-child(2n+1) {
  background-color: #FAFAFA;
}
.plan_box table tr {
  height: 40px;
  font-size: 14px;
  color: #666666;
  line-height: 14px;
  font-weight: 400;
}
.plan_box table tr:nth-child(2n) {
  background-color: #FAFAFA;
}
.plan_box table .head {
  font-size: 14px;
  color: #666666;
  line-height: 14px;
  font-weight: 600;
}
/*# sourceMappingURL=index.css.map */

看效果:

Snipaste_2022-11-27_10-56-03

打工告成,当然table标签自己也是有一些控制样式的属性,但我们还是要按照w3c推荐的:使用css3来全局控制样式。

标签:表格,color,tr,nth,html,child,Table,2n,css
From: https://www.cnblogs.com/liyublogs/p/16929301.html

相关文章

  • datatable使用groupby进行分组统计 [2]
    如果要使用groupby的话,可以使用linq,这是C#3.0的内容。给你个示例staticvoidMain(string[]args){DataTabledt=newDataTable();dt.Columns.Add("A");dt.C......
  • 01-InheritableThreadLocal和TransmittableThreadLocal
    01-InheritableThreadLocal和TransmittableThreadLocal1.ThreadLocal存在的问题publicclassTheadTest{privatestaticfinalThreadLocal<String>THREAD_LOCAL......
  • webpack配置css文件
    1.webpack处理js文件webpack会自动处理js文件和js文件之间的依赖。配置webpack.config.js文件,就可以在运行的时候使用webpack来代替webpack'./src/ma......
  • datatable使用groupby进行分组统计 .
    如何在datatable中进行分组,并且计算分组后每组的数量,想了一下,可以使用LINQ来实现datatable分组。代码如下 效果区域   库房         数量北京---北京仓库---......
  • LevelDb基础原理(1) SSTable
    1.介绍1.1描述SSTable(SortedStringTable)是一个通常放在磁盘上的,排序的字符串表,用来高效存储大量的键值对数据,同时搭配上优化实现IO操作的高吞吐量.1.2背景......
  • CSS中的元素显隐方法汇总
    最近在拜读张鑫旭大神的《CSS世界》,其中很多思维非常值得借鉴学习,特别是对CSS控制显隐的总结,非常到位,记录一下使用CSS让元素不可见的方法很多,剪裁、定位到屏幕外、明度变......
  • 【HTML】表格
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content......
  • css实现屏幕宽(高)等分
    不上代码,只写思路1、百分比,设置宽(高)固定百分比2、使用display:table;父元素设置display:table;,子元素设置display:table-cell;3、使用display:flex;父元素设置display:......
  • iptables防火墙
    iptables命令-F清除链中所有规则-P为链设置一条默认策略或者目标-A为链增加一条规则说明-D从链中删除一条规则-L查看当前表中的链和规则一般上述命令均已sudo......
  • HTML网址集合
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><title>网址</title></head><body><h1>网址</h1><ahref="https://www.baidu.com">百度</a><ahref="ht......