提示文字需满足高对比度(≥7:1)、最小字号13px加粗、禁用斜体、行高1.4,并叠加图标等非色彩线索,响应式自适应布局且语义明确。

提示文字颜色太淡,用户根本注意不到
默认的 color: #666 或 color: #999 在多数背景上对比度不足,尤其对中老年用户或弱光环境。WCAG 最低要求文本与背景对比度 ≥ 4.5:1,但提示类文字建议做到 ≥ 7:1。
- 别用
#999配白色背景——实测对比度仅 4.1,不达标 - 改用
#d32f2f(Material Design 红)配白底,对比度 7.3,语义明确且醒目 - 深色模式下避免硬写
#000,改用#e53e3e配#1a202c背景,对比度仍达 7.1 - 所有提示色必须脱离「装饰感」,比如别用
#ff6b6b(太粉、像强调而非警告)
字体太小太细,扫一眼就忽略
很多初学者直接套用 font-size: 12px + font-weight: normal,结果在 14 英寸笔记本上几乎看不见。提示信息不是辅助说明,是需要被读取的关键信号。
- 最小字号设为
font-size: 13px(iOS Safari 最小可读尺寸下限) - 必须加
font-weight: 500或600,别用400;500在多数系统里已足够清晰 - 禁用
font-style: italic——斜体降低字符识别率,尤其对带拼音/数字的提示(如“请输入 6–20 位密码”) - 行高保持
line-height: 1.4,过大会割裂文字与表单控件的视觉关联
只靠颜色区分状态,色盲用户完全失效
约 8% 的男性存在红绿色觉缺陷,纯靠 color: #2e7d32(成功绿)和 color: #d32f2f(错误红)无法传递信息。必须叠加非色彩线索。
- 错误提示前加
⚠️或 SVG 图标(),确保图标有aria-hidden="true" - 成功提示用 ✅ +
color: #2e7d32,错误用 ❌ +color: #d32f2f,图标本身不依赖颜色传达含义 - 绝对不要只用颜色变化做 hover 效果——比如输入框边框从灰变红,没图标、没文字,等于没提示
- 用
data-status="error"这类属性配合 CSS,方便后续加 screen reader 支持(如aria-live="polite")
响应式下提示被截断或重叠
固定宽容器里放长提示,或用 position: absolute 贴着输入框下方,一到小屏就错位甚至消失。提示必须随内容自适应,且优先级高于其他元素。
立即学习“前端免费学习笔记(深入)”;
- 给提示容器设
min-width: fit-content,避免被父容器压缩换行 - 用
margin-top: 4px替代position: absolute,保证文档流内自然跟随 - 移动端需加
max-width: 100%和word-break: break-word,防超长邮箱/URL 撑破布局 - 如果提示需浮层展示(如 tooltip),必须用
z-index: 1000以上,并测试是否被 modal、header 遮挡
.form-tip {
font-size: 13px;
font-weight: 500;
line-height: 1.4;
margin-top: 4px;
min-width: fit-content;
max-width: 100%;
word-break: break-word;
}
.form-tip.error {
color: #d32f2f;
}
.form-tip.success {
color: #2e7d32;
}
.form-tip::before {
content: "⚠️ ";
display: inline;
}
.form-tip.success::before {
content: "✅ ";
}
真正难的不是选个亮色或调大字号,而是让提示在任何设备、任何视力条件下,都**先于用户意识到问题之前就完成传达**。颜色和字体只是入口,背后得有一整套视觉层级、语义标记和响应逻辑兜底。










