[前端笔记——HTML 表格] 8.HTML 表格

news2024/11/16 7:30:02

[前端笔记——HTML 表格] 8.HTML 表格

  • 1.HTML 表格基础
    • 1.1 什么是表格?
    • 1.2 创建表格:
  • 2.HTML 表格高级特性和无障碍
    • 2.1 使用`<caption>`为表格增加一个标题
    • 2.2 添加`<thead>`,`<tfoot>`和`<tbody>`结构
    • 2.3 嵌套表格
    • 2.4 对于视力受损的用户的表格
      • 2.4.1 使用列和行的标题
      • 2.4.2 scope 属性
      • 2.4.3 id 和标题属性

1.HTML 表格基础

1.1 什么是表格?

表格是由行和列组成的结构化数据集(表格数据),它允许我们快速简单地查找某个表示不同类型数据之间的某种关系的值。表格在人类社会中很常见,而且已经存在很长时间了。HTML 的创建者们提供了一种方法来构建和呈现 web 上的表格数据。

表格的一个特点就是严格。通过在行和列的标题之间进行视觉关联的方法,就可以让信息能够很简单地被解读出来。HTML 表格应该用于表格数据,这正是 HTML 表格设计出来的用途。使用表格布局的同时还需使用 CSS 布局技巧 ,才能呈现出一个完整的表格。

1.2 创建表格:

每一个表格的内容都包含在这两个标签中:<table></table>。在 HTML 的 <body> 中添加这些内容。

在表格中,最小的内容容器是单元格,是通过 <td> 元素创建的(其中“td”代表“table data”)。

每个 <td> 元素 创建一个单独单元格,它们共同组成了第一行。我们添加的每个单元格都使行的长度变长。如果想让这一行停止增加,并让单元格从第二行开始,我们需要使用 <tr> 元素(其中“tr”代表“table row”)。

表格中的标题是特殊的单元格,通常在行或列的开始处,定义行或列包含的数据类型。

为了将表格的标题在视觉上和语义上都能被识别为标题,你可以使用 <th> 元素(其中 ‘th’ 代表 ‘table header’),用法和 <td>是一样的,除了它表示为标题,不是普通的单元格以外。

表格标题也有额外的好处, scope 属性让表格变得更加无障碍,每个标题与相同行或列中的所有数据相关联。

表格中的标题和单元格有 colspan 和 rowspan 属性,这两个属性接受一个没有单位的数字值,数字决定了它们的宽度或高度是几个单元格。比如,colspan=“2” 使一个单元格的宽度是两个单元格。

<tr>
   <td  colspan="4">SUM</td>
   <td>118</td>
</tr>

HTML 有一种方法可以定义整列数据的样式信息:就是 <col><colgroup> 元素。

<table>
  <colgroup>
    <col>
    <col style="background-color: yellow">
  </colgroup>
  <tr>
    <th>Data 1</th>
    <th>Data 2</th>
  </tr>
  <tr>
    <td>Calcutta</td>
    <td>Orange</td>
  </tr>
  <tr>
    <td>Robots</td>
    <td>Jazz</td>
  </tr>
</table>

上述代码用了两个 <col> 来定义“列的样式”,每一个 <col> 都会指定每列的样式,对于第一列,我们没有采取任何样式,但是我们仍然需要添加一个空的 <col> 元素,如果不这样做,那么我们的样式就会应用到第一列上。

如果想把这种样式信息应用到每一列,我们可以只使用一个 <col> 元素,不过需要包含 span 属性,像这样:

<colgroup>
  <col style="background-color: yellow" span="2">
</colgroup>

就像 colspan 和 rowspan 一样,span 需要一个无单位的数字值,用来指定让这个样式应用到表格中多少列。

2.HTML 表格高级特性和无障碍

2.1 使用<caption>为表格增加一个标题

可以为你的表格增加一个标题,通过 <caption> 元素,再把 <caption> 元素放入 <table> 元素中。应该把它放在<table> 标签的下面,例如:

<table>
  <caption>Dinosaurs in the Jurassic period</caption>

  ...
</table>

标题意味着包含对于表格内容的描述,这对那些希望可以快速浏览网页中的表格对他们是否有帮助的读者们来说,是非常好的功能。特别是盲人用户,不需要让屏幕阅读设备读出很多单元格的内容,来让用户了解这张表格讲的是什么,而是可以依靠标题的内容,来决定是否需要了解更详细的内容。

注意: summary 属性也可以在<table> 元素中使用,用来提供一段描述,同样可以被屏幕阅读设备阅读。我们推荐使用 <caption> 元素来代替使用,因为 summary 被 HTML5 规范, deprecated (废除了),也不能被视力正常的用户阅读。

2.2 添加<thead>,<tfoot><tbody>结构

<thead>, <tfoot>,和 <tbody>, 这些元素把表格中的部分标记为表头、页脚、正文部分。

这些元素不会使表格更易于屏幕阅读器用户访问,也不会造成任何视觉上的改变。然而,它们在应用样式和布局上会起到作用,可以更好地让 CSS 应用到表格上。

<thead> 需要嵌套在 table 元素中,放置在头部的位置,因为它通常代表第一行,第一行中往往都是每列的标题,但是不是每种情况都是这样的。如果使用了 <col>/<colgroup> 元素,那么 <thead>元素就需要放在它们的下面。

<tfoot> 需要嵌套在 table 元素中,放置在底部 (页脚) 的位置,一般是最后一行,往往是对前面所有行的总结,比如,你可以按照预想的方式将<tfoot>放在表格的底部,或者就放在 <thead> 的下面。(浏览器仍将它呈现在表格的底部)。

<tbody> 需要嵌套在 table 元素中,放置在 的下面或者是 <tfoot> 的下面,这取决于如何设计结构。(<tfoot>放在<thead>下面也可以生效.)

2.3 嵌套表格

在一个表格中嵌套另外一个表格是可能的,只要包含完整的结构,包括 <table> 元素。下面的代码演示了一个简单的嵌套表格:

<table id="table1">
  <tr>
    <th>title1</th>
    <th>title2</th>
    <th>title3</th>
  </tr>
  <tr>
    <td id="nested">
      <table id="table2">
        <tr>
          <td>cell1</td>
          <td>cell2</td>
          <td>cell3</td>
        </tr>
      </table>
    </td>
    <td>cell2</td>
    <td>cell3</td>
  </tr>
  <tr>
    <td>cell4</td>
    <td>cell5</td>
    <td>cell6</td>
  </tr>
</table>

输出是这样的:
在这里插入图片描述

2.4 对于视力受损的用户的表格

视力受损的用户经常使用一个屏幕阅读设备来为他们读出网页上的信息。对于盲人来说,阅读简单的文字没有什么问题,但是要理解一张表格的内容,这就有一些难度了。虽然,使用正确的标记,我们可以用程序化来代替视觉关联。

2.4.1 使用列和行的标题

屏幕阅读设备会识别所有的标题,然后在它们和它们所关联的单元格之间产生编程关联。列和行标题的组合将标识和解释每个单元格中的数据,以便屏幕阅读器用户可以类似于视力正常的用户的操作来理解表格。

2.4.2 scope 属性

scope 属性,可以添加在 <th> 元素中,用来帮助屏幕阅读设备更好地理解那些标题单元格,这个标题单元格到底是列标题呢,还是行标题。比如:

<thead>
  <tr>
    <th scope="col">Purchase</th>
    <th scope="col">Location</th>
    <th scope="col">Date</th>
    <th scope="col">Evaluation</th>
    <th scope="col">Cost (€)</th>
  </tr>
</thead>

每一行都可以这样定义一个行标题 (如果我们已经使用了 th 和 td 元素):

<tr>
  <th scope="row">Haircut</th>
  <td>Hairdresser</td>
  <td>12/09</td>
  <td>Great idea</td>
  <td>30</td>
</tr>

屏幕阅读设备会识别这种结构化的标记,并一次读出整列或整行。

2.4.3 id 和标题属性

如果要替代 scope 属性,可以使用 id 和 headers 属性来创造标题与单元格之间的联系。使用方法如下:

  1. 为每个<th> 元素添加一个唯一的 id 。
  2. 为每个 <td> 元素添加一个 headers 属性。每个单元格的headers 属性需要包含它从属于的所有标题的 id,之间用空格分隔开。
<thead>
  <tr>
    <th id="purchase">Purchase</th>
    <th id="location">Location</th>
    <th id="date">Date</th>
    <th id="evaluation">Evaluation</th>
    <th id="cost">Cost (€)</th>
  </tr>
</thead>
<tbody>
<tr>
  <th id="haircut">Haircut</th>
  <td headers="location haircut">Hairdresser</td>
  <td headers="date haircut">12/09</td>
  <td headers="evaluation haircut">Great idea</td>
  <td headers="cost haircut">30</td>
</tr>

  ...

</tbody>

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

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

相关文章

第五层:C++中的运算符重载

文章目录前情回顾运算符重载概念为什么会出现运算符重载运算符重载中函数名格式加减运算符重载作用实现左移运算符重载作用左移运算符是什么&#xff1f;实现递增递减运算符作用实现前置后置赋值运算符重载关系运算符重载作用实现函数调用运算符重载第二种重载掌握&#xff01;…

vueJs中toRaw与markRaw函数的使用比较

01toRaw()函数接收一个reactive响应式数据,将一个响应式的数据变为普通类型的数据,转化为非响应式数据,相当于还原对象,reactive相当于制作,但对于ref响应式数据不起作用将一个由reactive生成的响应式对象转为普通(原始)对象toRaw()可以返回由reactive(),readonly(),shallowRea…

Java_Git:1. Git简介

目录 1 Git历史 2 Git与Svn对比 2.1 Svn特点 2.2 Git特点 3 Git工作流程 4 Git的安装 4.1 软件下载 4.1.1 git 4.1.2 tortoisegit 4.2 软件安装 4.2.1 安装git for windows 4.2.2 安装TortoiseGit 4.2.3 安装TortoiseGit中文语言包 1 Git历史 版本控制系统目标&…

Spread 16.0.2 for Winforms Crack-2023.1.4 Version

Spread使用这些无依赖性的 WinForms 电子表格组件探索 WinForms 企业应用程序的可能性。 Spread新增&#xff1a;v15 NuGet 包现在支持 .NET 6.0、.NET Core 3.1 和 .NET 4.62 使用桌面设计器应用程序快速提供类似 Excel 的电子表格体验 使用全面的 API创建企业电子表格、网格…

【Python-Django】医疗辅助平台-创建项目-day1

前期准备请参考此文: https://codeknight.blog.csdn.net/article/details/126780724https://codeknight.blog.csdn.net/article/details/126780724下载BootStrap插件: Bootstrap v3 中文文档 Bootstrap 是最受欢迎的 HTML、CSS 和 JavaScript 框架,用于开发响应式布局、移…

字符串匹配算法详解

为保证代码严谨性&#xff0c;文中所有代码均在 leetcode 刷题网站 AC &#xff0c;大家可以放心食用。皇上生辰之际&#xff0c;举国同庆&#xff0c;袁记菜馆作为天下第一饭店&#xff0c;所以被选为这次庆典的菜品供应方&#xff0c;这次庆典对于袁记菜馆是一项前所未有的挑…

excel图表美化:用散点标记制作不一样的折线图

柱形图常常用于显示一段时间内的数据变化或显示各项之间的比较情况。但当时间序列过多时&#xff0c;我们往往考虑用折线图来反映数据的变化趋势。之所以讲这个&#xff0c;是希望大家能够把折线图和柱形图的应用区分开来&#xff0c;根据自己的需求使用不同的图表。以下是各个…

深度学习 GNN图神经网络(一)图的基本知识

一、前言 本文主要介绍图的一些基础知识&#xff0c;不会太深奥&#xff0c;够用就行。我们以民国最出名的七角恋人物关系图为例进行讲解。 二、图的概念 图&#xff08;Graph&#xff09;可以用来描述实体之间的关系。 如下图所示&#xff0c;一张图捋清民国最出名的七角恋…

DW动手学数据分析Task5:数据建模及模型评估

目录1 建模1.1 数据分析流程1.2 模型搭建准备工作1.2.1 导入库1.2.2 载入数据1.3 模型搭建1.3.1 选择模型1.3.2 切割训练集和测试集1.3.3 模型创建1.3.4 输出模型预测结果2 评估2.1 评估的准备工作2.2 模型评估2.2.1 交叉验证2.2.2 混淆矩阵2.2.3 ROC曲线1 建模 1.1 数据分析流…

Mac创建python2虚拟环境

前提&#xff1a;已经安装配置好python2.7版本&#xff0c;使用python和pip命令可以得到如下返回信息 1.安装virtualenv和virtualenvwrapper pip install virtualenv -i https://pypi.tuna.tsinghua.edu.cn/simple sudo pip install virtualenvwrapper -i https://pypi.tuna.t…

1595_AURIX_TC275_PMU_应用提示2

全部学习汇总&#xff1a; GreyZhang/g_TC275: happy hacking for TC275! (github.com) 如果通过标注来标注了异常字行&#xff0c;那么在算法设计的时候&#xff0c;检查到之后应该跳过这一行的数据。 可以纠正的ECC在PFlash中是可以忽略的&#xff0c;相应的信息只是可以用来…

【SpringCloud】Ribbon负载均衡的基本原理与使用

【SpringCloud】Ribbon负载均衡的基本原理与使用 一、负载均衡原理 二、源码解析 LoadBalanced IDEA源码跟踪 负载均衡源码小结 三、负载均衡策略 负载均衡策略 策略规则解析 自定义负载均衡策略 &#xff08;1&#xff09;代码方式 &#xff08;2&#xff09;配置文…

Unity的Bounds(包围盒)简记

Unity的Bounds&#xff08;包围盒&#xff09;简记一、Bounds(包围盒)概述1.什么是包围盒?2.包围盒的类型2.1 AABB包围盒(Axis-aligned bounding box)2.2 包围球(Sphere)2.3 OBB方向包围盒(Oriented bounding box)2.4 FDH固定方向凸包(Fixed directions hulls或k-DOP)2.5 包围…

云服务器部署前后端分离项目(若依)详细教程

第一次在Linux云服务器上部署前后端分离项目&#xff0c;查了很多资料和视频&#xff0c;踩了许多坑。成功实现部署若依的前后端分离项目后&#xff0c;想记录一下前后端部署的过程&#xff0c;供学习的小伙伴参考。 目录1. 环境准备2. 开放端口3. 下载前后端项目4. 前端部署5.…

Linux部署Kafka及常见问题记录

Linux部署Kafka及常见问题记录kafka 使用场景Kafka 基本概念BrokerTopic(主题)Partition(分区)ProducerConsumerConsumer Group&#xff08;消费者群组&#xff09;offset 偏移量Linux 安装&启动 kafka修改核心配置文件创建数据存放目录启动验证 kafk 是否启动成功Topic (主…

AX7A200教程(1):DDR3仿真平台搭建(一)

本章节主要调用官方的MIG控制器&#xff0c;并使用官方的MIG控制器进行仿真&#xff0c;开发环境vivado2020.1鉴于很多童鞋无法仿真自己新建的DDR工程&#xff0c;即使使用modelsim仿真也仿真失败&#xff0c;本例程着重在vivado中对自己新建的带DDR3的工程进行仿真。新建DDR3工…

Python SciPy 插值及其他各种插值法

SciPy 插值什么是插值&#xff1f;在数学的数值分析领域中&#xff0c;插值&#xff08;英语&#xff1a;interpolation&#xff09;是一种通过已知的、离散的数据点&#xff0c;在范围内推求新数据点的过程或方法。简单来说插值是一种在给定的点之间生成点的方法。例如&#x…

【MySQL】MyCAT入门综述◆掌握MyCAT的基础概念、功能及适用场景

&#x1f4eb;作者简介&#xff1a;小明java问道之路&#xff0c;专注于研究 Java/Liunx内核/C及汇编/计算机底层原理/源码&#xff0c;就职于大型金融公司后端高级工程师&#xff0c;擅长交易领域的高安全/可用/并发/性能的架构设计与演进、系统优化与稳定性建设。 &#x1f4…

二叉树知识概括锦囊(一)

作者&#xff1a;爱塔居 专栏&#xff1a;数据结构 作者简介&#xff1a;大三学生&#xff0c;希望跟大家一起进步&#xff01; 文章目录 目录 文章目录 一、树形结构 二、树的基础知识 三、二叉树 3.1 概念 3.2 特殊的二叉树 3.3 二叉树的性质 四、习题挑战 一、树形结构 树是…

【论文速递】IJCV2022 - CRCNet:基于交叉参考和区域-全局条件网络的小样本分割

【论文速递】IJCV2022 - CRCNet:基于交叉参考和区域-全局条件网络的小样本分割 【论文原文】&#xff1a;CRCNet: Few-shot Segmentation with Cross-Reference and Region-Global Conditional Networks 获取地址&#xff1a;https://link.springer.com/article/10.1007/s112…