静态柱状图用模拟柱子、CSS控制宽高,本质是语义缺失的视觉占位;需用百分比控高、flex布局、aria-label增强可访问性,IE11需避免calc()混用单位并预计算高度。

HTML 本身不画图,所谓“静态柱状图”只是用 因为你要的是“静态”“纯 HTML/CSS”方案,可能受限于环境(比如邮件模板、CMS 富文本编辑器、老系统只允许内联样式)。 常见错误现象: 成绩分布图的关键不是“画得像”,而是“比例对”。比如区间 [60–69] 有 8 人,[70–79] 有 24 人,那后者柱子高度必须是前者的 3 倍——否则就是误导。 使用场景:后台导出 HTML 报表、嵌入内部 Wiki、生成 PDF 快照(用 wkhtmltopdf) IE11 不支持 性能影响:纯 CSS 柱状图无渲染延迟,但超过 20 个区间时,IE11 的重排开销明显上升 真正麻烦的不是画柱子,而是“怎么让人相信这图没造假”:区间边界是否闭合([60,70) 还是 [60,70])、空区间要不要留空位、分数四舍五入规则有没有写进图例——这些都得靠文字说明补全,不能指望柱子自己说话。为什么不用
或 ? 需要 JS 渲染, 虽然静态但结构稍重,而
– 柱子高度用 px 写死 → 数据一变就全错
– 用 float 排列 → 父容器塌陷、换行错乱
– 忘加 aria-label → 屏幕阅读器读不出数值
display: flex 或 display: inline-block 避免浮动陷阱role="region" 和 aria-label="85–90 分:12 人"
width 和 height 怎么算才不踩坑?
maxCount
height: calc(100px * count / maxCount)(100px 是基准高度,可调)font-size: 0.8em,避免小屏溢出vh 单位——打印时会失效怎么让 IE11 也显示正常?
calc() 在 height 里混用单位(如 calc(100px * 12 / 36)),会直接忽略整条样式。这是最常被忽略的兼容性断点。
height: 33.33% 这类静态值zoom: 1 触发 IE hasLayout,防高度塌陷box-shadow 或 border-radius —— IE11 渲染模糊
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











