text-transform仅改变文本显示样式,不修改实际内容;uppercase将英文字母转为大写,lowercase转为小写,capitalize使每个单词首字母大写,none为默认值。

text-transform 只改变显示效果,不修改实际值——提交表单或复制文本时,后端收到的仍是原始大小写。
text-transform 的四个核心取值怎么选
直接对应常见需求:
-
uppercase:强制所有英文字母视觉上转为大写,适合标题、标识类文本 -
lowercase:全部转小写,常用于邮箱输入框的视觉统一(但注意:不能替代后端校验) -
capitalize:每个单词首字母大写,注意“单词”由浏览器按空格/标点切分,hello-world在 Chrome 中变成Hello-World,Firefox 可能是Hello-world -
none:显式重置,避免继承父级样式干扰
input 元素上用 text-transform 的坑
虽然 text-transform: uppercase 能让输入框里看起来全是大写,但它不阻止用户粘贴小写字母,也不影响 value 属性值。真正要确保提交的是大写,必须配合 JavaScript:
- 仅用 CSS:用户复制粘贴
abc,input.value仍是"abc",只是显示为"ABC" - 可靠做法:监听
input事件,调用.toUpperCase()或.toLowerCase()并赋值回value - 别依赖
ime-mode: disabled,该属性已废弃,现代浏览器基本无视
中文、特殊字符和多语言场景下的行为
text-transform 对中文、日文、阿拉伯数字完全无效;对德语 ß、土耳其语 i/I 等有特定规则,但各浏览器实现不一致:
- 希腊字母
σ在词尾应转为ς,Firefox 支持,Chrome 不处理 -
full-width和full-size-kana是 CSS3 新增,仅在少数现代浏览器(如 Safari 15.4+)中稳定支持,生产环境慎用 - 若需处理中文拼音首字母大写,
capitalize无用,必须用 JS 提前转换
最易被忽略的一点:屏幕阅读器读出的仍是原始文本,不是转换后的样式——这对无障碍访问很关键,不能只靠 text-transform 满足可访问性要求。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











