火次果
火次果

暂无菜单项

首页/文章/技术文章/web前端/HTML5/
打开 MD 链接

用 colgroup 的 span 一次给整列上样式

发布于 1天前
2

🎯 前阵子接手一张销售报表,左边两列要灰底,右边三列白底。第一反应是给每个 td 写 class,表格有四十多行,写到手抖。后来翻规范才想起 colgroup 这套按列设样式的方式。

colgroup 放在 table 开头,里面用 col 描述每一列。想一次管多列,就靠 span 属性:span="2" 表示这条规则覆盖连续两列。

表格列分组示意
报表按列分组,底色一眼区分

写法长这样:

<table>
  <colgroup>
    <col class="left">
    <col span="2" class="right">
  </colgroup>
  <thead>...</thead>
  <tbody>...</tbody>
</table>

⚠️ 坑在属性支持范围。col 只能接收部分样式:背景色、宽度、边框、可见性这几类生效。想设字号、内边距、文字颜色,写在 col 上不会起作用,浏览器直接忽略。需要完整控制时,改用 td:nth-child(n) 选择器。

其余场景,列级底色和列宽用 colgroup 最省代码。报表类页面基本靠它收尾。

常见问题(FAQ)

colgroup 必须紧跟 table 后吗
是的,一个 table 只能有一个 colgroup,且要放在 caption、thead 这些内容之前,顺序不对浏览器会忽略。
col 的 span 默认是 1 吗
是的,不写 span 默认作用于 1 列。span="2" 才表示连续覆盖两列。
为什么给 col 设 font-size 不生效
col 仅支持背景、宽度、边框、visibility 等部分属性,字号、内边距、文字颜色无效,需用 td/th 或 nth-child 选择器。
colgroup 能替代给每个 td 加 class 吗
能用于列级外观(底色、列宽),但文字与内边距控制不了,这部分仍要落到 td 上。
col 的样式优先级高吗
不高,低于直接写在 td/th 上的样式,td 上的规则会覆盖 col 的设置。
colgroupcolgroup span属性HTML表格结构table列宽控制表格列分组
支持作者
如果这篇内容对你有帮助,可以请作者喝杯咖啡
0 点赞
0 收藏
分享
0 讨论
反馈
0 / 600
细中粗
0 讨论
热门最新
总结
暂无总结
嗨,下午好!
所有的成功,都源自一个勇敢的开始
创作
社区
购物
会员
近期热门

暂无数据

火次果
火次果
首页
资迅中心
小店
AI导航
社区
所有的成功,都源自一个勇敢的开始
不辜负每一个勇敢的开始
关于FAQ协议
火次果 © 2026鲁ICP备2025164830号-1