语义正确的基础表格必须包含、至少一对及每行至少一个或;仅用于表头,空表需填充占位内容,为唯一合法标题,合并单元格须符合语义逻辑且避免结构错乱。
怎么用 <table> 写出语义正确的基础表格
<p>浏览器不关心你是不是“教程里学的”,只认标签嵌套是否合法。一个可用的 <a style="color:#f60; text-decoration:underline;" title="html" href="https://m.php.cn/zt/15763.html" target="_blank">html</a> 表格必须有 <code><table>,至少一对 <code><tr>(行),每行里至少一个 <code><td> 或 <code><th>(单元格)。缺任意一层,渲染可能错乱,屏幕阅读器也会读不准。
<ul><li><code><th> 只用于表头(列名或行名),默认加粗居中;<code><td> 用于普通数据,别为了“看起来像标题”乱用 <code><th>
<li>空表格(比如后台数据还没加载)不要留空 <code><table>,至少放个 <code><tr><td>暂无数据</td></tr>,否则某些老浏览器会忽略整个 <table> 标签
<li>
<code><caption></caption> 是表格的唯一合法标题,放在 <table> 开始后第一行,别用 <code><h3></h3> 堆在上面——它不被算作表格一部分,SEO 和无障碍支持都会打折
colspan 和 rowspan 什么时候该用、怎么不踩坑
colspan 和 rowspan 什么时候该用、怎么不踩坑合并单元格不是排版技巧,是语义表达:比如“第一季度”下面并列“1月”“2月”“3月”,就该用 colspan="3" 让“第一季度”横跨三列。滥用会导致表格结构混乱,尤其是用 JS 动态生成时容易漏算列数。
- 合并方向要和逻辑一致:
colspan合并列(横向),rowspan合并行(纵向),写反了表格会塌陷或错位 - 合并后,被合并掉的单元格不能存在——比如某行用了
<td colspan="2">A</td> <td>B</td>,这行实际只有两个逻辑列,但 DOM 里写了三个<td>,浏览器会自动补一列,后续样式和 JS 选中全乱 <li>用 CSS Grid 或 Flex 替代复杂合并?可以,但别混用:CSS 强制布局 + <code>rowspan容易触发重排冲突,尤其在 Safari 中表现不稳定 - 检查是否误用了
border="0"(HTML4 遗留属性),现代写法统一用 CSS:table { border-collapse: collapse; }+td, th { border: 1px solid #ccc; } <table> 默认 <code>display: table,但若父容器设了font-size: 0(常见于清除 inline 元素间隙),会导致单元格内文字消失——给td, th单独设font-size: 14px- 表格内容溢出不换行?
td默认white-space: normal,但若里面包了<div> 或设置了 <code>white-space: nowrap,就得手动加word-break: break-word或限制max-width移动端表格横向滚动很卡?别硬塞
overflow-x给
<table> 外层加 <code>overflow-x: auto是最常见也最危险的解法。iOS Safari 在表格内容多时滚动帧率骤降,而且 pinch-zoom 会失效。- 真要横向滚动,把
<table> 包进 <code><div style="overflow-x: auto; -webkit-overflow-scrolling: touch;">,后者开启 iOS 惯性滚动 <li>更稳妥的是响应式改造:用 <code>@media把宽表转成卡片列表(display: block),每张卡片对应一行,用data-label属性存原列名,保证信息不丢 - 千万别对
<table> 设 <code>width: 100%后再加横向滚动——它会按 100% 父宽缩放内容,导致小屏上字体糊、点击区域变小表格的复杂度藏在语义里,不在样式上。写完记得用 Chrome 的“Accessibility”面板看一遍
<th> 是否正确关联了 <code><td>,这点比边框好看十倍重要。</td>
- 真要横向滚动,把
表格没边框、文字挤成一团?优先查这三处
HTML 表格默认无边框、无间距、文字紧贴,不是 bug,是规范行为。别急着加 CSS,先确认结构是否干净。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更










