在 CSS 中,.someclass { text-transform: uppercase }
翻译类 someclass
的所有文本为大写,但当我选择文本、复制并粘贴到文本编辑器或电子邮件中时,字母保留其原始大小写。除了 CSS 之外,某些客户端 Web 样式技术是否允许文档定义自定义文本转换以更改大小写以外的内容,例如 r
至 w
或 f
至 ꝼ
, 没有在用户复制文本时应用转换?
Replace a particular character using css 的答案推荐的 JavaScript。出于以下几个原因,我更愿意使用一些(非 CSS)声明式样式技术而不是脚本:
- 我希望复制粘贴返回原始文本,而不是转换后的文本,与
text-transform
相同属性(property)。 - 我希望“在页面内查找”(Ctrl+F) 在用户键入未转换的字母时起作用。
- 我缺乏关于有多少我网站的浏览者使用 NoScript 或其他一些脚本白名单插件的统计数据。但后来我经常访问一个在线论坛,该论坛的用户经常吹嘘自己没有受到特定漏洞的影响,因为他们不运行 JavaScript,这让我产生了偏见
- 运行
onload
的脚本将在重新换行时引起明显的无样式内容闪烁。
最近我能够编写 XSLT 样式表来更改 <body>
中的文本节点。 , 基于 answer to a question about whitelisting characters .
(提示:match="html:body//text()"
和 translate()
。)
它未通过复制和 Ctrl+F 标准,并且它 reportedly fails the no-FOUC criterion在试图变得太聪明的浏览器中,但它应该加载在自 IE 6 以来的几乎所有主要浏览器中,即使脚本已关闭。
然而,一年前,谷歌试图kill client-side XSLT a year ago by removing it from Blink .
如果 Chrome、Opera 和其他基于 Chromium 的浏览器最终放弃 XSLT,那么没有 XSLT 的用户可能会超过没有脚本的用户。
正在获取自由字体并对其进行修改以包含 @font-face
的自定义表单和连字, font-feature-settings
, 和 font-variant-ligatures
能不能触发唯一的方法?
最佳答案
CSS - 级联样式表,顾名思义,它仅用于样式化工作表(html 页面)。代码段 .someclass { text-transform: uppercase }
只是将标签内的字符(字母)风格化为 someclass
类。这并不容易,或者我可以说仅使用 CSS 而不是 JavaScript 无法满足您的需求。
根据 Zach Saucier对你的问题的评论,“没有用 CSS 做到这一点的好方法”,我也同意这一点。
使用 JavaScript 绝对可行。但是您的标准不希望您这样做。
我对你的请求,尝试使用 JavaScript 或尝试不使用 CSS。
关于html - 复制未转换的文本时,在页面中将一个字母显示为另一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26434635/