CSS基础:table的4个标签的样式详解(6000字长文!附案例)

news2025/1/19 2:50:45

你好,我是云桃桃。

一个希望帮助更多朋友快速入门 WEB 前端的程序媛。

云桃桃-大专生,一枚程序媛,感谢关注。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端工具”,可获取 Web 开发工具合集

276篇原创内容-更多前端系列内容可以go公众.h:云桃桃

后台回复“前端工具”可获取开发工具,持续更新中

后台回复“前端基础题”可得到前端基础100题汇总,持续更新中

后台回复“前端电子书”可获取20+本精选电子书

前言

之前在 HTML 基础部分,我们讲解了表格的结构和写法HTML 表格的使用,收藏这1篇就够了!。简单回顾下。

  • <table> 包含 <thead><tbody><tfoot> 等表格部分。

  • <thead> 和 <tbody> 分别包含多个 <tr> 行。

  • <tr> 行中可以包含 <th> 或 <td> 单元格,用来显示表格的标题或数据。

本文,我们来给它们增加一些漂亮的样式。图为增加样式前,增加样式后的效果,是不是确实漂亮多了。

图片

ok,那我们一起来看看这些表格标签的样式属性吧。

一、表格的样式属性

1. 设置表格边框

通过 CSS 的 border 属性可以设置表格的边框样式、宽度和颜色。例如:

table {
  border-collapse: collapse; /* 合并表格边框 */
  border: 1px solid #ccc; /* 设置表格边框样式和颜色 */
}

2. 设置表格外边距

可以使用 margin 属性CSS基础:margin属性4种值类型,4个写法规则详解来设置表格的外边距。例如:

table {
  margin: 20px; /* 设置表格外边距 */
}
、

3. 设置表格背景

使用 background 属性可以设置表格或单元格的背景。例如,设置颜色。

table {
  background-color: #f8f8f8; /* 设置表格背景颜色 */
}

4. 设置表格文本

使用 colortext-alignline-height,可以统一设置表格内文本的颜色,文字位置,行高等。例如:

table {
  color: #fff; /* 设置表格文字颜色 */
  text-align: center; /* 设置表格文字居中 */
  line-height: 40px; /* 设置表格行高 */
}

5. 设置表格的宽高

通过 CSS 的 widthheight 属性可以设置表格的宽,高。例如:

table {
  width: 500px; /* 设置表格宽度 */
  height: 300px; /* 设置表格高度 */
}

设置表格的高度(height)会影响表格在页面中的布局和显示效果,具体影响有以下几点。

  1. 固定高度: 设置表格的高度可以使表格在垂直方向上占据固定的空间,这在需要确保表格在页面中占据特定高度的情况下非常有用,比如需要将表格设置为固定的侧边栏或者特定高度的数据展示区域。

  2. 内容溢出: 如果表格的高度设置不足以容纳其中的内容,内容可能会溢出表格,导致显示不完整或者被隐藏。这时可以通过设置表格容器的滚动条或者调整表格高度来解决溢出问题。比如,垂直方向的表格可以设置:overflow-y: auto;

  3. 自适应高度: 如果表格的高度未设置或者设置为自适应(比如默认的 auto 值),表格会根据内容自动调整高度,保证内容完整显示,这在表格内容高度不确定或者动态变化的情况下非常实用。

总的来说,设置表格的高度可以根据实际布局需求来调整表格在页面中的显示效果,保证内容的完整展示并且符合页面整体布局。

下面是一个综合应用上述样式的示例:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      table {
        width: 80%;
        margin: 20px auto;
        border-collapse: collapse; /* 设置表格边框合并 */
        margin-top: 20px;
        border: 10px solid #1916e3;
        background: #c1c1df;
        color: #fff; /* 设置表格文字颜色 */
        text-align: center; /* 设置表格文字居中 */
        line-height: 40px; /* 设置表格行高 */
      }
    </style>
  </head>
  <body>
    <table>
      <thead>
        <tr>
          <th>学号</th>
          <th>姓名</th>
          <th>数学成绩</th>
          <th>语文成绩</th>
          <th>英语成绩</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>1001</td>
          <td>张三</td>
          <td>85</td>
          <td>78</td>
          <td>92</td>
        </tr>
        <tr>
          <td>1002</td>
          <td>李四</td>
          <td>92</td>
          <td>87</td>
          <td>88</td>
        </tr>
        <tr>
          <td>1003</td>
          <td>王五</td>
          <td>78</td>
          <td>80</td>
          <td>85</td>
        </tr>
        ...可以多复制几行 tr ...
      </tbody>
    </table>
  </body>
</html>

效果如图:

图片

二、表头的样式属性

很多时候呢,表头的样式是要区别于表格的其他部分的。当为表头单元格设置特殊样式时,可以使用以下 CSS 属性:

  1. 背景(background): 可以设置表头单元格的背景颜色或者增加 icon 图标,使其与其他单元格区分开来。

  2. 字体样式(font-style): 可以设置表头单元格的字体样式,如斜体、粗体等,以突出表头信息。

  3. 对齐方式(text-align): 可以设置表头单元格中文本的对齐方式,如左对齐、右对齐、居中对齐等,使表头内容排版更加整齐。

下面是代码,来看一下。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>表格样式演示</title>
    <style>
      table {
        width: 100%;
        border-collapse: collapse;
      }
      th {
        background-color: #007bff; /* 蓝色背景 */
        color: #fff; /* 白色字体 */
        font-weight: bold; /* 粗体字 */
        text-align: center; /* 居中对齐 */
        padding: 10px; /* 设置内边距 */
      }
      td {
        border: 1px solid #ccc; /* 设置边框 */
        padding: 10px; /* 设置内边距 */
      }
    </style>
  </head>
  <body>
    <table>
      <thead>
        <tr>
          <th>姓名</th>
          <th>年龄</th>
          <th>性别</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>张三</td>
          <td>25</td>
          <td>男</td>
        </tr>
        <tr>
          <td>李四</td>
          <td>30</td>
          <td>女</td>
        </tr>
      </tbody>
    </table>
  </body>
</html>

效果如图:

图片

三、表格行样式属性

为表格的行设置样式可以通过 CSS 的伪类选择器来实现,常用的包括:

  1. 奇偶行样式(:nth-child): 这个也叫作,斑马表格。可以通过给奇偶行<tr> 增加 CSS 样式,或者 :nth-child 伪类选择器为表格的奇偶行设置不同的样式,以增加表格的可读性。

  2. 鼠标悬停样式(:hover): 可以使用 :hover 伪类选择器为鼠标悬停在行上时添加特定的样式,以提高表格的交互性。

以下是一个示例的 CSS 代码,演示了如何为表格的行设置奇偶行样式和鼠标悬停样式:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      /* 表格样式 */
      table {
        width: 100%;
        border-collapse: collapse; /* 合并边框 */
        border: 1px solid #333;
      }
      th,
      td {
        border: 1px solid #333;
      }

      /* 奇偶行样式 */
      tr:nth-child(even) {
        background-color: #f2f2f2; /* 偶数行背景色 */
      }

      tr:nth-child(odd) {
        background-color: #fff; /* 奇数行背景色 */
      }

      /* 鼠标悬停样式 */
      tr:hover {
        background-color: #29ec8b; /* 鼠标悬停时背景色 */
      }
    </style>
  </head>
  <body>
    <table>
      <thead>
        <tr>
          <th>姓名</th>
          <th>年龄</th>
          <th>性别</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td class="highlight">张三</td>
          <td>25</td>
          <td>男</td>
        </tr>
        <tr>
          <td>李四</td>
          <td>30</td>
          <td>女</td>
        </tr>
        <tr>
          <td class="highlight">张三</td>
          <td>25</td>
          <td>男</td>
        </tr>
        <tr>
          <td>李四</td>
          <td>30</td>
          <td>女</td>
        </tr>
        <tr>
          <td class="highlight">张三</td>
          <td>25</td>
          <td>男</td>
        </tr>
        ...(自己多复制几行 tr,不在这里写了,浪费空间。)
      </tbody>
    </table>
  </body>
</html>

效果如图:

图片

四、单元格的样式属性

  1. 背景(background): 可以设置单元格的背景,使内容更加突出或与其他单元格区分开。但这个,通常会使用表格的背景或者表格行来设置单元格的背景,除非单元格样式和其他单元格的样式有不同,才会单独写样式。

  2. 边框样式(border): 可以设置单元格的边框样式,如实线、虚线、点线等,用于区分单元格之间的边界。

  3. 文字样式(color、font-weight、font-style、text-align 等): 可以设置单元格中文字的颜色、粗细、字体样式、对齐方式等,以使内容更加易读和美观。这个,通常不单独设置,通常会使用表格的文本样式或者表格行来设置单元格的文本样式,除非样式和其他单元格的样式有不同,才会单独写样式。

以下是代码。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      /* 表格样式 */
      table {
        width: 100%;
        border-collapse: collapse; /* 合并边框 */
      }
      /* 单元格样式 */
      td {
        color: #333; /* 白色文字 */
        border: 1px solid #ccc; /* 边框样式 */
        padding: 8px; /* 内边距 */
        text-align: right; /* 文字居右对齐 */
      }
      td.highlight {
        background-color: #ec638a; /* 特殊的红色背景 */
        color: #fff; /* 文字变成白色 */
      }
    </style>
  </head>
  <body>
    <table>
      <thead>
        <tr>
          <th>姓名</th>
          <th>年龄</th>
          <th>性别</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td class="highlight">张三</td>
          <td>25</td>
          <td>男</td>
        </tr>
        <tr>
          <td>李四</td>
          <td>30</td>
          <td>女</td>
        </tr>
      </tbody>
    </table>
  </body>
</html>

效果如图:

图片

综合案例

那你可能会说,表格,表格行,和单元格都能设置背景,文字,行高,它们写在什么元素上最合理呢?我有以下 3 条建议,可做参考:

对于表格整体的样式,如背景色、边框等,可以直接在 table 元素上设置。

  1. 表格整体样式:

table {
  background-color: #f8f8f8; /* 设置表格背景色 */
  border-collapse: collapse; /* 合并表格边框 */
  border: 1px solid #ddd; /* 设置表格边框样式和颜色 */
  line-height: 30px; /* 设置表格行高 */
}
  1. 表头单元格样式:

    对于表格的表头单元格,可以使用 th 元素或指定的类选择器进行样式设置。

th {
  background-color: #333; /* 设置表头背景色 */
  color: #fff; /* 设置表头文字颜色 */
  text-align: center; /* 设置文字居中对齐 */
}

对于表格的行样式,如奇偶行背景色、鼠标悬停效果等,可以使用 tr 元素或指定的类选择器进行样式设置。

  1. 表格行样式:

tr:nth-child(even) {
  background-color: #f2f2f2; /* 偶数行背景色 */
}

tr:nth-child(odd) {
  background-color: #fff; /* 奇数行背景色 */
}

tr:hover {
  background-color: #ddd; /* 鼠标悬停时背景色 */
}

对于表格的单元格样式,如背景色、文字样式和行高等,可以使用 td 元素或指定的类选择器进行样式设置。

  1. 单元格样式:

td {
  padding: 10px; /* 设置单元格内边距 */
  text-align: center; /* 设置文字居中对齐 */
  line-height: 30px; /* 设置行高 */
}

/* 设置特定类的单元格样式 */
.highlight-cell {
  background-color: #ffc; /* 设置单元格背景色 */
  font-weight: bold; /* 设置文字加粗 */
  color: #f00; /* 设置文字颜色 */
}

最后,咱们来一个综合应用的案例。

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>学生成绩单</title>
    <style>
      * {
        margin: 0;
        padding: 0;
      }
      table {
        width: 80%;
        margin: 30px auto; /* 让表格居中 */
        border-collapse: collapse;
        border: 2px solid #ddd; /* 整体边框颜色 */
      }
      th,
      td {
        line-height: 40px; /* 行高 */
        border: 1px solid #ddd; /* 每行边框 */
        text-align: center;
        font-size: 16px;
      }
      th {
        background-color: #007bff; /* 表头背景色 */
        color: #ffffff;
      }
      /* 这次奇偶行用 class 来写 */
      tr.even {
        background-color: #eee; /* 偶数行浅灰色 */
      }
      tr:hover {
        background-color: #ccc; /* 鼠标悬停时的背景色:蓝色 */
      }
      /* 把90分以上的要特殊标识绿色 */
      td.perfect {
        background-color: #00ff00; /* 绿色背景 */
      }
    </style>
  </head>
  <body>
    <table>
      <thead>
        <tr>
          <th>学号</th>
          <th>姓名</th>
          <th>数学成绩</th>
          <th>语文成绩</th>
          <th>英语成绩</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>1001</td>
          <td>张三</td>
          <td>85</td>
          <td>78</td>
          <td class="perfect">98</td>
        </tr>
        <!-- 给2,4,6行数据,加上even(偶数)的class名称,做斑马条纹 -->
        <tr class="even">
          <td>1002</td>
          <td>李四</td>
          <td class="perfect">92</td>
          <td>87</td>
          <td>88</td>
        </tr>
        <tr>
          <td>1003</td>
          <td>王五</td>
          <td>78</td>
          <td>80</td>
          <td>85</td>
        </tr>
        <tr class="even">
          <td>1001</td>
          <td>张三</td>
          <td>85</td>
          <td>78</td>
          <td>92</td>
        </tr>
        <tr>
          <td>1002</td>
          <td>李四</td>
          <td>89</td>
          <td>87</td>
          <td>88</td>
        </tr>
        <tr class="even">
          <td>1003</td>
          <td>王五</td>
          <td>78</td>
          <td>80</td>
          <td>85</td>
        </tr>
        <!-- 其他行以此类推 -->
      </tbody>
    </table>
  </body>
</html>

效果如下。

图片

OK,本文完。

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

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

相关文章

llama_factory微调QWen1.5

GitHub - hiyouga/LLaMA-Factory: Unify Efficient Fine-Tuning of 100 LLMsUnify Efficient Fine-Tuning of 100 LLMs. Contribute to hiyouga/LLaMA-Factory development by creating an account on GitHub.https://github.com/hiyouga/LLaMA-FactoryQwen1.5 介绍 | QwenGITH…

EEG基础

01 简介 脑电图(EEG)因其低成本、无创、便携以及毫秒级的高时间分辨率等特点&#xff0c;成为了研究大脑功能、异常和神经生理动力学的可靠且广泛使用的测量工具。 在神经信号处理领域&#xff0c;EEG通常作为一种非侵入性的脑成像技术用于诊断脑部疾病&#xff0c;而正常EE…

50.基于SpringBoot + Vue实现的前后端分离-酒店管理系统(项目 + 论文PPT)

项目介绍 本站是一个B/S模式系统&#xff0c;采用SpringBoot Vue框架&#xff0c;MYSQL数据库设计开发&#xff0c;充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得基于SpringBoot Vue技术的酒店管理系统设计与实现管理工作系统…

VMware最新下载安装

1、打开浏览器 搜索VMware官网&#xff0c;点进去。如图&#xff1a; 这里有两种下载方法&#xff0c;便洁就是我这种&#xff0c;还有一种就是注册账号之后下载就完全没有必要了&#xff0c;而且基本注册不了&#xff0c;不太好注册。 2、选择"产品"第二个选项 …

深度剖析扫雷游戏的各个知识点(2)

小伙伴们&#xff0c;大家好。这次继续上次的剖析扫雷游戏的知识点。 那么本次咱们主要是讲扫雷中的宏定义&#xff0c;也就是#define这些 首先#define是用来定义一个宏&#xff0c;后面就是类似于和变量一样的常量名&#xff0c;以及最后的数字就是它的值。 定义规则 #def…

被Claude3的图生代码技术秀到了,前端开发效率,提升到秒级

被Claude3的图生代码技术秀到了&#xff01;前端开发效率&#xff0c;提升到秒级 上传一张网站图片&#xff0c;用Claude3 生成实现这个网站的代码的教程来啦&#xff01; 在Claude3 的中文网站上一分钟就能实现&#xff0c;生成前端代码。中文网站地址是https://askmanyai.c…

【银角大王———Django学习DAY0——基础准备】

银角大王——Django学习前情提要 &#xff08;1&#xff09;在pycharm中下载Flask&#xff08;2&#xff09;使用Flask&#xff08;3&#xff09;下载BootStrap框架&#xff08;4&#xff09; 使用BootStrap框架 &#xff08;1&#xff09;在pycharm中下载Flask 在设置——项目…

【cmu15445c++入门】(14)C++的 =delete和=default

一、定义 &#xff08;1&#xff09;default 在C中&#xff0c; default 是一种特殊的语法&#xff0c;用于显式地请求编译器生成一个函数的默认实现。当应用于构造函数时&#xff0c; default 告诉编译器生成一个默认构造函数。默认构造函数是一个不接受任何参数的构造函数。…

Linux给磁盘扩容(LVM方式)

Linux给磁盘扩容&#xff08;LVM方式&#xff09; 最近测试性能&#xff0c;在本地打数据时&#xff0c;发现磁盘空间不足&#xff0c;于是想手动给/挂载点添加空间。这里介绍通过LVM方式快速给磁盘扩容。 LVM:是一种技术&#xff0c;方便管理磁盘。如果不用LVM&#xff0c;那…

经典网络解读—IResNet

论文&#xff1a;Improved Residual Networks for Image and Video Recognition&#xff08;2020.4&#xff09; 作者&#xff1a;Ionut Cosmin Duta, Li Liu, Fan Zhu, Ling Shao 链接&#xff1a;https://arxiv.org/abs/2004.04989 代码&#xff1a;https://github.com/iduta…

IK分词器安装、配置、分词自定义、Rest使用、SpringBoot使用

文章目录 1. 概述2. 安装配置3. 自定义拆分文本4. 调用4.1 拆分规则4.2 Rest 调用4.3 SpringBoot 调用 1. 概述 IK分词器是ElasticSearch(es)的一个最最最有名插件&#xff0c;能够把一段中文或者别的语句划分成一个个的关键字&#xff0c;进而在搜索的时候对数据库中或者索引库…

并发场景下 缓存击穿 穿透 雪崩如何解决

最近建了一个技术交流群&#xff0c;欢迎志同道合的同学加入&#xff0c;群里主要讨论&#xff1a;分享业务解决方案、深度分析面试题并解答工作中遇到的问题&#xff0c;同时也能为我提供写作的素材。 群号 208236931&#xff0c;欢迎进群交流学习&#xff0c;一起进步、进步、…

3.4 海思SS928开发 - 烧写工具 - BurnTool Emmc 烧写

3.4 烧写工具 - BurnTool Emmc 烧写 BurnTool 工具提供了多种烧写方式&#xff0c;这里只介绍最常用的 烧写emmc方式。 环境准备 PC 与单板之间连接好调试串口以及网线。 将厂商提供的出厂镜像拷贝至 PC 硬盘上&#xff0c;解压后得到的文件如下&#xff1a; . ├── boot_…

ARM学习(26)链接库的依赖查看

笔者今天来聊一下查看链接库的依赖。 通常情况下&#xff0c;运行一个可执行文件的时候&#xff0c;可能会出现找不到依赖库的情况&#xff0c;比如图下这种情况&#xff0c;可以看到是缺少了license.dll或者libtest.so&#xff0c;所以无法运行。怎么知道它到底缺少什么dll呢&…

收藏这份方案,制造业营销管理快人一步【内附下载链接】

随着“中国制造2025”等政策的实施&#xff0c;制造业正经历着技术革新和产业升级&#xff0c;尤其在智能化和绿色制造领域取得了显著进展。 然而&#xff0c; 制造业面临着消费者需求日益多样化和个性化的挑战&#xff0c;迫切需要从生产导向转变为市场导向。与此同时&#…

Transformer中的位置编码详解

什么是位置编码 位置编码概述 位置编码的目的是为了补充序列的位置信息&#xff0c;这是因为自注意力机制本身不包含位置的概念&#xff08;例如顺序信息&#xff09;。位置编码的具体作用是&#xff0c;对于不同的输入序列成分&#xff0c;赋予其不同的位置标识&#xff0c;确…

RIP小实验配置及缺省路由下发

配置如下&#xff1a; IP配置&#xff1a; IP配置完先查看RIP协议学习到的路由表&#xff0c;没有内容则代表没有开启RIP 启用RIP&#xff1a;这里的rip后跟的ID只具有本地意义&#xff0c;可以在1-65535之间随便取&#xff0c;不同路由器之间都可以取用不同的&#xff0c;为了…

宿舍预付费管控云平台

1.宿舍预付费管控云平台概述 宿舍预付费管控云平台是一种创新的智能管理系统&#xff0c;专为学校、公寓等住宿环境设计&#xff0c;旨在提升管理效率&#xff0c;优化用户体验&#xff0c;并实现资源的高效利用。通过云端技术&#xff0c;该平台可以实现远程充值、实时消费记…

Day 30 回溯总结

重新安排行程(*) 给定一个机票的字符串二维数组 [from, to]&#xff0c;子数组中的两个成员分别表示飞机出发和降落的机场地点&#xff0c;对该行程进行重新规划排序。所有这些机票都属于一个从 JFK&#xff08;肯尼迪国际机场&#xff09;出发的先生&#xff0c;所以该行程必…

设置表格高度后,数值改变但实际不变

1.选中表格 2.点击“开始”——>“段落设置”的选项启动按钮&#xff0c;设置为单倍行距 3.可以看到&#xff0c;表格的行高被调小了。