表格式

Feb 26, 2025 am 11:06 AM

HTML表格:深入理解复杂性与样式

本文深入探讨HTML表格的复杂性及其CSS样式的应用。HTML表格包含标题、行组和列组等元素,渲染顺序为:表格、列组、列、行组、行、单元格。HTML表格模型以行为中心,单元格结构上包含在行内。

Table Formatting

表格格式化对象

CSS提供了十个与表格相关的display属性值,用于控制表格样式。这些值也可应用于其他元素,但可能需要生成匿名表格相关元素才能正确渲染。

表格及其列的宽度由两种算法决定:固定表格布局算法和自动表格布局算法。前者不受表格单元格内容影响,后者需要检查表格中的每个单元格,对于大型表格来说可能非常耗时。

CSS2定义了两种渲染内部表格对象边框的模型:分离边框模型和折叠边框模型。分离边框模型只允许单元格和表格本身有边框,而折叠边框模型允许行、行组、列、列组和表格本身的边框以复杂的方式重叠。

Table Formatting

分离边框渲染

Table Formatting

折叠边框渲染

列和列组元素的属性

只有少数属性可应用于display属性值为table-columntable-column-group的元素:边框属性(仅在折叠边框模型中)、背景属性(单元格和行具有透明背景)、宽度属性和可见性属性值collapse(其他可见性值将被忽略)。

表格宽度算法

与其他块级框不同,宽度设置为auto且水平边距为零的表格不会填充其包含块。表格大小将由其内容决定。 可以使用margin-leftmargin-right设置为auto来水平居中表格。

确定表格列宽度的算法有两种:固定表格布局算法和自动表格布局算法,由table-layout属性(值分别为fixedauto,初始值为auto)指定。如果表格宽度指定为auto,通常使用自动表格布局算法。对于块级表格(display设置为table),用户代理可以但并非必须使用固定表格布局算法。

固定表格布局算法中,列和表格的宽度不受表格单元格内容影响。每列宽度如下确定:

  • 宽度不为auto的列对象设置该列的宽度。
  • 宽度不为auto的第一行单元格设置其所属列的宽度。如果单元格跨越多列,则宽度将平均分配到这些列。
  • 剩余列平均分配剩余水平空间(减去任何边框或单元格间距)。

表格宽度为表格宽度属性值和列宽度总和(加上边框或单元格间距)中的较大值。如果表格比列宽,则额外空间将分配到列上。

切勿省略单元格!

由于第一行单元格用于确定列宽,因此如果使用固定表格布局算法,则不应从第一行省略任何单元格。 CSS2.1规范中未定义此情况下的行为。

自动表格布局算法通常需要多次遍历。CSS2.1规范建议了一种确定列宽度的算法,但用户代理无需使用它。该算法检查整个表格中的每个单元格,计算渲染每个单元格所需的最小和最大宽度。然后,这些值用于确定每列的宽度,这反过来又可能决定表格本身的宽度。

由于必须检查每个单元格,因此对于具有大量行和/或列的表格,自动表格布局算法可能非常耗时。

表格高度算法

如果表格高度属性的值不是auto,并且指定的高度与行高总和(加上边框或单元格间距)不同,则行为未定义。行、行组和单元格的高度属性的百分比值未定义。每个单元格的vertical-align属性决定其在行内的对齐方式。只允许baselinetopbottommiddle值。对于任何其他值,将使用baseline

表格对象的边框

CSS2中存在两种渲染内部表格对象边框的模型:分离边框模型和折叠边框模型。可以使用border-collapse属性将其值设置为separate(初始值)或collapse来选择首选模型。

在分离边框模型中,只有单元格(和表格本身)可以有边框;行、行组、列和列组不可以。边框分别绘制在单元格周围,单元格之间由border-spacing属性指定的垂直和水平距离分隔。在单元格边框之间的空间中,行、行组、列和列组的背景是不可见的。只有表格背景在单元格间距中可见。

border-collapse属性设置为collapse时,单元格之间不会分开,它们的边框(以及行、行组、列、列组和表格本身的边框)将以相当复杂的方式折叠(或重叠)。

border-spacingempty-cells属性在使用折叠边框模型时将被忽略。

(以下为FAQ部分,由于篇幅限制,此处仅保留标题,完整内容请参考原文)

  • 表格的基本格式化步骤
  • 如何使表格响应式
  • 如何合并表格单元格
  • 如何向表格添加边框
  • 如何更改表格的背景颜色
  • 如何对齐表格中的文本
  • 如何向表格添加标题
  • 如何以不同方式设置表格的第一行或列的样式
  • 如何向表格添加悬停效果
  • 如何使表格更易访问

以上是表格式的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1670
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1274
29
C# 教程
1256
24
静态表单提供商的比较 静态表单提供商的比较 Apr 16, 2025 am 11:20 AM

让我们尝试在这里造成一个术语:“静态表单提供商”。你带上html

使Sass更快的概念证明 使Sass更快的概念证明 Apr 16, 2025 am 10:38 AM

在一个新项目开始时,Sass汇编发生在眼睛的眨眼中。感觉很棒,尤其是当它与browsersync配对时,它重新加载

每周平台新闻:HTML加载属性,主要的ARIA规格以及从iframe转移到Shadow dom 每周平台新闻:HTML加载属性,主要的ARIA规格以及从iframe转移到Shadow dom Apr 17, 2025 am 10:55 AM

在本周的平台新闻综述中,Chrome引入了一个用于加载的新属性,Web开发人员的可访问性规范以及BBC Move

带有HTML对话框元素的一些动手 带有HTML对话框元素的一些动手 Apr 16, 2025 am 11:33 AM

这是我第一次查看HTML元素。我已经意识到了一段时间,但是尚未将其旋转。它很酷,

纸张形式 纸张形式 Apr 16, 2025 am 11:24 AM

购买或建造是技术的经典辩论。自己构建东西可能会感觉更便宜,因为您的信用卡账单上没有订单项,但是

'订阅播客”链接应在哪里? '订阅播客”链接应在哪里? Apr 16, 2025 pm 12:04 PM

有一段时间,iTunes是播客中的大狗,因此,如果您将“订阅播客”链接到喜欢:

托管您自己的非JavaScript分析的选项 托管您自己的非JavaScript分析的选项 Apr 15, 2025 am 11:09 AM

有很多分析平台可帮助您跟踪网站上的访问者和使用数据。也许最著名的是Google Analytics(广泛使用)

See all articles